0

我需要转换 .ToLower() 用户在输入时在文本框上输入的内容...我找到了一些示例,但这些都与事件有关KeyPress,而且asp.net只有事件TextChange,而且,我发现了一些东西,Hegex但有人曾经告诉我与之合作hegex不是一个好习惯......我是一个初学者,所以我更想问你们,这样做的更好方法是什么?

4

3 回答 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

我假设您希望在用户输入文本后立即在客户端将文本小写。您可以使用onkeypressEvent处理它:

<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 回答