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

问题描述:

我需要将.ToLower()用户在输入时在文本框中键入的内容转换为...我发现了一些例外,但是这些都与事件KeyPressasp.net有关只是事件TextChange,另外,我找到Hegex的东西,但有人曾告诉我,与hegex工作是不是一个好习惯......我是一个begginer所以,我更喜欢问你们,有什么更好的方法来做到这一点?在输入时转换为降低文本框的内容

+0

重复http://*.com/questions/6999649/how-to-make-everything-lowercase-automatically-in-javascript-as-他们键入 – Ceres 2013-03-04 15:12:47

您在混淆服务器和客户端事件。请注意,在.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> 

顺便说一句,使用正则表达式不是一个坏习惯,在这种情况下它不是必需的。正则表达式对文本搜索,验证和解析非常有用,使事情变得更容易。唯一的权衡是一些正则表达式模式可能很不清楚,难以理解。

+0

谢谢你,但是当我将这个值保存在我的数据库中时,会保存为小写吗?或者它只是显示为小写? – Ghaleon 2013-03-04 17:04:38

+0

如果您使用Javascript函数'onkeyup =“this.value = this.value.toLowerCase();”',它将被保存为小写。 – MarcusVinicius 2013-03-04 17:13:45

我假设您希望在用户输入文本时尽快降低客户端的文本。您可以处理onkeypress Event:上服务器端

<asp:TextBox Id="TextBox1" onkeypress="this.value = this.value.toLowerCase();" runat="server" /> 

未触发每个按键,但是当你提交的页面,你可以使用String.ToLower。例如,如果你处理TextBoxTextChanged 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" /> 
+0

我这样做:' asp:TextBox>'但仍然相同...; \ – Ghaleon 2013-03-04 17:10:49

+0

@Ghaleon:抱歉,我的'onkeypress'处理程序不正确,请相应地编辑我的答案。 'onkeypress =“this.value = this.value.toLowerCase();”' – 2013-03-04 17:13:38

+0

使用'onkeypress'事件会导致最后一个字母保持大写,如果它是一个大写字母。 HTTP://的jsfiddle。net/qGhg4/ – MarcusVinicius 2013-03-04 17:19:55

你可以把CSS的好处由@MarcusVinicius
的建议假设你有这样的文本框

<asp:TextBox id="text1" runat="server"/> 

你可以把cssClass放在上面,如下

<asp:TextBox id="text1" CssClass='text' runat="server"/> 

,然后创建一个CSS类

.text 
{ 
    text-transform: lowercase; 
} 
+0

谢谢你,但是,当我在DataBase上保存该值时,会保存为小写?或者它只是显示为小写? – Ghaleon 2013-03-04 17:05:06

+0

@Ghaleon它将以小写保存。 – 2013-03-05 04:35:41