如何禁止在asp.net中只允许(a-zA-Z)

本文关键字:a-zA-Z net 何禁止 禁止 asp | 更新日期: 2023-09-27 17:54:00

如何在asp.net(c#)的文本框中只允许(a-zA-Z) ?

如何禁止在asp.net中只允许(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