在键入时转换为降低文本框的内容

时间:2013-03-04 14:59:01

标签: asp.net

我需要转换.ToLower()用户在输入时在文本框中输入的内容...我找到了一些例子,但它全部是事件KeyPress而在asp.net中只有事件TextChange,我发现了Hegex的内容,但有人曾告诉我,与hegex合作并不是一个好习惯......我是个乞丐所以,我更愿意问你们,有什么更好的方法呢?

3 个答案:

答案 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;
 }