如何禁止在asp.net中只允许(a-zA-Z)
本文关键字:a-zA-Z net 何禁止 禁止 asp | 更新日期: 2023-09-27 17:54:00
如何在asp.net(c#)的文本框中只允许(a-zA-Z) ?
您可以使用ASP。. NET验证控件,以限制提交文本框时将接受的值。我建议使用RegularExpressionValidator
.
这种方法的好处是,它可以在服务器端和客户端同时工作,确保在服务器端处理输入时有效。只要确保在服务器端调用页面的Validate
方法,并在处理文本框的值之前检查页面是否有效(IsValid
)。
您可以将此方法与safi提到的AJAX控件工具包(或jQuery插件)结合使用,以改善最终用户的体验。
使用ASP。. NET RegularExpressionValidator
看起来像这样:
<asp:TextBox id="textBoxToValidate" runat="server"/>
<asp:RegularExpressionValidator id="regularExpressionValidator" ControlToValidate="textBoxToValidate" ValidationExpression="[^a-zA-Z]*" Display="Static" ErrorMessage="Alphabet characters are not allowed" runat="server"/>
然后在服务器端:
private void Page_Load(Object sender, EventArgs e)
{
Validate(); // force server-side validation controls to validate
if (IsValid)
{
// validation successful
// you can safely use textBoxToValidate.Text
}
}
当用户在文本框中键入内容时,可以检查键代码。例如:
function checknumber(e, control) {
isIE = document.all ? 1 : 0
keyEntry = !isIE ? e.which : event.keyCode;
if ((keyEntry > '47') && (keyEntry < '58'))
return true;
else if (keyEntry == '8')
return true;
else if (keyEntry == '46')
return false;
else
return false;
}
,然后在按下键时调用此函数:
onkeypress="return checknumber(event, this);"
此代码只允许在文本框中出现数字。
虽然您可以通过javascript在客户端禁用它,但不建议只使用客户端验证。只要应用你的验证服务器端,只有这样才能确保你只得到你想要的。
在javascript中使用类似这样的代码
function isCharacter(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode
if (charCode >= 65 && charCode <= 90) {
return false;
}
else if (charCode >= 97 && charCode <= 122) {
return false;
}
return true;
}
,如果你不知道我传递文本框onkeypress事件代码也
onkeypress="return isCharacter(event)"
这里可以看到,在asp.net中使用ajax可以限制文本框中的数据类型
http://www.asp.net/AJAX/AjaxControlToolkit/Samples/FilteredTextBox/FilteredTextBox.aspx