我需要转换.ToLower()用户在输入时在文本框中输入的内容...我找到了一些例子,但它全部是事件KeyPress
而在asp.net
中只有事件TextChange
,我发现了Hegex
的内容,但有人曾告诉我,与hegex
合作并不是一个好习惯......我是个乞丐所以,我更愿意问你们,有什么更好的方法呢?
答案 0 :(得分:2)
您正在混淆服务器端和客户端事件。请注意,您在.aspx中声明的TextBox将默认呈现为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>
顺便说一句,使用正则表达式并不是一种不好的做法,在这种情况下它不是必需的。正则表达式对于文本搜索,验证和解析非常有用,使事情变得更容易。唯一的权衡是一些正则表达式模式可能非常不清楚且难以理解。
答案 1 :(得分:2)
我假设您希望在用户输入文本后立即对客户端的文本进行小写。您可以使用onkeypress
Event:
<asp:TextBox Id="TextBox1" onkeypress="this.value = this.value.toLowerCase();" runat="server" />
在服务器端,每次按键时都不会触发,而是在提交页面时,您可以使用String.ToLower
。例如,如果您处理TextBox
TextChanged
event:
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" />
答案 2 :(得分:0)
你可以按照@MarcusVinicius的建议来获得css的好处 假设你有一个像这样的文本框
<asp:TextBox id="text1" runat="server"/>
您可以按如下方式将cssClass放在
上<asp:TextBox id="text1" CssClass='text' runat="server"/>
然后创建一个css类
.text
{
text-transform: lowercase;
}