如何在ASP.NET中阻止特定的包机输入

时间:2015-02-16 04:43:01

标签: javascript asp.net validation

我有以下asp.net代码来获取用户输入然后使用下面的javascript我确保它不被用户保持为空。现在我想做的是使用相同的javascript阻止用户输入少数字符,如(|,@,#,$)。关于我该怎么办的任何建议?

<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onblur="CheckTxtBox(this);"></asp:TextBox>

function CheckTxtBox(sender) { if (sender.value == "") { alert("Please enter Address 1"); return false; } }

4 个答案:

答案 0 :(得分:2)

有两种方法可以做到这一点

1) In  "keypress" event.Check the user press a character like (|,@,#,$)then stop them right there

2)  "onblur" event: when the input element loses focus, validate its contents. If the value is invalid, display a message

注意

第二种方法更好,因为如果用户复制粘贴内容,那么第一种方法将不会捕获它们

第一种方法

 function CheckTxtBox(e) {
        var evt = (e) ? e : window.event;
        var charCode = (evt.keyCode) ? evt.keyCode : evt.which;
        if (//charactercode of the keys as condition) {
            return false;
        }
        return true;
    };

第二种方法

onblur event中,您可以使用正则表达式检查文本框值,并使用正则表达式对其进行验证。

答案 1 :(得分:1)

function CheckTxtBox(e) {
    var k;
    document.all ? k = e.keyCode : k = e.which;
    return ((k > 64 && k < 91) || (k > 96 && k < 123) || k == 8 || k == 32 || (k >= 48 && k <= 57));
}

你的asp控件:

<asp:TextBox ID="txtAccountName" runat="server" Width="100%" CssClass="input" Enabled="False" onkeypress="return CheckTxtBox(event)""></asp:TextBox>

答案 2 :(得分:0)

要验证在编辑控件中输入的键/文本,建议使用正则表达式。请参阅:http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html,了解一些此类验证示例的演示。

但是,仅使用浏览器停止验证并不是一个好习惯。始终在服务器端进行验证。这是因为可以在浏览器中禁用JavaScript,这可以允许未经验证的数据发布到服务器。

答案 3 :(得分:0)

我这样做是我做的。现在这只取得(A-Z)的大写章程和(1-9)的数字。谢谢大家的帮助。非常感谢。

<asp:TextBox ID="txtAccountName" runat="server" 
                                Width="100%" CssClass="input" Enabled="False"  onkeypress="return isNumber(event);"></asp:TextBox>

//  this JS validates and prevent inputting symbols 
  function isNumber(evt) {
      evt = (evt) ? evt : window.event;
      var charCode = (evt.which) ? evt.which : evt.keyCode;
      if (charCode > 31 && (charCode < 65 || charCode > 90) && (charCode < 48 || charCode > 57)) {
          return false;
      }
      return true;
  }