【问题标题】:how to block specific charter inputs in ASP.NET如何阻止 ASP.NET 中的特定章程输入
【发布时间】:2015-02-16 04:43:00
【问题描述】:

我有下面的 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; } }

【问题讨论】:

  • 使用这些键的键码并防止它们点击,这意味着当用户按下这些键时,通过其键码找到它并进行一些验证
  • 您必须提及您尝试过的内容。你提到的很好。还有一件事是你还应该描述你所取得的成就。例如:您的警报alert("Please enter Address 1"); 是否对您有用?

标签: javascript asp.net validation


【解决方案1】:

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

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 中,您可以使用正则表达式检查您的文本框值并使用正则表达式对其进行验证。

【讨论】:

    【解决方案2】:
    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>
    

    【讨论】:

      【解决方案3】:

      要验证在编辑控件中输入的键/文本,建议使用正则表达式。请查看:http://www.9lessons.info/2009/03/perfect-javascript-form-validation.html 以获取有关少数此类验证示例的演示。

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

      【讨论】:

        【解决方案4】:

        我在这里做的就是我所做的。现在这只需要 (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;
          }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2015-10-17
          • 2012-04-02
          • 1970-01-01
          • 2019-11-18
          • 1970-01-01
          • 2018-03-26
          • 1970-01-01
          相关资源
          最近更新 更多