我需要转换 .ToLower() 用户在输入时在文本框上输入的内容...我找到了一些示例,但这些都与事件有关KeyPress
,而且asp.net
只有事件TextChange
,而且,我发现了一些东西,Hegex
但有人曾经告诉我与之合作hegex
不是一个好习惯......我是一个初学者,所以我更想问你们,这样做的更好方法是什么?
问问题
3758 次
3 回答
4
您混淆了服务器端和客户端事件。请注意,您在 .aspx 中声明的 TextBox 将默认呈现为 a input[type=text]
,因此您可以处理所有客户端事件(onkeypress、onkeyup、onkeydown 等)。但是,您想要完成的事情只能使用 CSS 来完成。将以下属性放入您的文本框中:
<asp:TextBox ID="txtTest" runat="server" Style="text-transform: lowercase;"></asp:TextBox>
这样,您输入的文本将显示为小写,但如果想要将文本真正转换为小写,则必须使用 Javascript:
<asp:TextBox ID="txtTest" runat="server" onkeyup="this.value = this.value.toLowerCase();"
Style="text-transform: lowercase;"></asp:TextBox>
顺便说一句,使用正则表达式并不是一个坏习惯,在这种情况下就没有必要了。正则表达式对于文本搜索、验证和解析非常有用,使事情变得更容易。唯一的权衡是某些正则表达式模式可能非常不清楚且难以理解。
于 2013-03-04T15:06:41.803 回答
2
我假设您希望在用户输入文本后立即在客户端将文本小写。您可以使用onkeypress
Event处理它:
<asp:TextBox Id="TextBox1" onkeypress="this.value = this.value.toLowerCase();" runat="server" />
在服务器端,不是每次按键都会触发,而是在提交页面时,您可以使用String.ToLower
. 例如,如果您处理TextBox
TextChanged
事件:
protected void TextBox1_TextChanged(object sender, EventArgs e)
{
TextBox1.Text = TextBox1.Text.ToLower();
}
请记住在 .aspx 标记上添加事件处理程序:
<asp:TextBox OnTextChanged="TextBox1_TextChanged" AutoPostBack="true" runat="server" Id="TextBox1" />
于 2013-03-04T15:11:31.757 回答
0
您可以按照@MarcusVinicius 的建议利用css
假设您有一个像这样的文本框
<asp:TextBox id="text1" runat="server"/>
您可以按如下方式将 cssClass 放在上面
<asp:TextBox id="text1" CssClass='text' runat="server"/>
然后创建一个css类
.text
{
text-transform: lowercase;
}
于 2013-03-04T15:16:37.750 回答