在输入时转换为降低文本框的内容
我需要将.ToLower()用户在输入时在文本框中键入的内容转换为...我发现了一些例外,但是这些都与事件KeyPress
和asp.net
有关只是事件TextChange
,另外,我找到Hegex
的东西,但有人曾告诉我,与hegex
工作是不是一个好习惯......我是一个begginer所以,我更喜欢问你们,有什么更好的方法来做到这一点?在输入时转换为降低文本框的内容
您在混淆服务器和客户端事件。请注意,在.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>
顺便说一句,使用正则表达式不是一个坏习惯,在这种情况下它不是必需的。正则表达式对文本搜索,验证和解析非常有用,使事情变得更容易。唯一的权衡是一些正则表达式模式可能很不清楚,难以理解。
谢谢你,但是当我将这个值保存在我的数据库中时,会保存为小写吗?或者它只是显示为小写? – Ghaleon 2013-03-04 17:04:38
如果您使用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
。例如,如果你处理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" />
我这样做:'
@Ghaleon:抱歉,我的'onkeypress'处理程序不正确,请相应地编辑我的答案。 'onkeypress =“this.value = this.value.toLowerCase();”' – 2013-03-04 17:13:38
使用'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;
}
谢谢你,但是,当我在DataBase上保存该值时,会保存为小写?或者它只是显示为小写? – Ghaleon 2013-03-04 17:05:06
@Ghaleon它将以小写保存。 – 2013-03-05 04:35:41
重复http://*.com/questions/6999649/how-to-make-everything-lowercase-automatically-in-javascript-as-他们键入 – Ceres 2013-03-04 15:12:47