如何在asp.net中仅禁用(a-zA-Z)?

时间:2011-04-29 11:28:46

标签: c# asp.net

如何在文本框中的asp.net(C#)中仅禁用(a-zA-Z)?

5 个答案:

答案 0 :(得分:4)

您可以使用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
    }
}

答案 1 :(得分:1)

当用户在文本框中输入内容时,您可以检查关键代码。 例如:

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);"

此代码仅允许文本框中的数字。您可以根据需要进行更改。

答案 2 :(得分:0)

虽然您可以通过javascript禁止客户端,但不建议仅使用客户端验证。只需应用您的验证服务器端,只有这样才能确保您只得到您想要的。

答案 3 :(得分:0)

在这里你可以看到在asp.net中使用ajax你可以限制你想要在文本框中的数据类型

http://www.asp.net/AJAX/AjaxControlToolkit/Samples/FilteredTextBox/FilteredTextBox.aspx

答案 4 :(得分:0)

在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;
    }

如果您不知道我正在传递Textbox onkeypress事件代码

onkeypress="return isCharacter(event)"