【问题标题】:Jquery Script Not Working to accept input numbers onlyJquery 脚本不工作只接受输入数字
【发布时间】:2014-02-05 09:25:18
【问题描述】:

我已经编写了我的 Jquery 脚本来只为文本框输入数字。 以下是我的 html 代码:

<input type="text" name="mobile_number" id="mobile_number" maxlength="10" class="form-control input-md" placeholder="Mobile Number" required="required">

当我尝试输入一些值时,它也接受数字和字符。

我的 Jquery 脚本是:

$("#mobile_number").keydown(function(event) {

if ( event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 ) {

}
else {

    if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
        event.preventDefault(); 
    }   
 } });

【问题讨论】:

  • 使用正则表达式测试数字

标签: javascript php jquery mysql validation


【解决方案1】:
$(document).ready(function () {
  //called when key is pressed in textbox
  $("mobile_number").keypress(function (e) {
     //if the letter is not digit then display error and don't type anything
     if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
        //display error message
        $("#errmsg").html("Digits Only").show().fadeOut("slow");
               return false;
    }
   });
});

http://jsfiddle.net/lesson8/HkEuf/1/

我已经更新了这里的代码,看看它是否按预期工作。

【讨论】:

    【解决方案2】:

    或者,您可以尝试现有的解决方案,

    喜欢这个:http://firstopinion.github.io/formatter.js/demos.html

    或者这个:http://www.decorplanit.com/plugin/

    【讨论】:

      【解决方案3】:

      检查您是否包含了jquery 中的任何version,也将您的代码写入$(document).ready() 之类的,

      $(function () {
          $("#mobile_number").keydown(function (event) {
              if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9) {
      
              } else {
                  if ((event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
                      event.preventDefault();
                  }
              }
          });
      });
      

      Demo

      【讨论】:

        【解决方案4】:

        数字的keyCode的范围是[95,105];和 [48,57]

        $("#mobile_number").keydown(function(event) {
        if ( (event.keyCode > 95 && event.keyCode <106)||(event.keyCode > 47 && event.keyCode <58)) {
        }
        else {
        
            event.preventDefault(); 
        } 
        });
        

        【讨论】:

          【解决方案5】:

          我用这个 OneLiner

          <input type="number" onkeypress="return /[0-9]/i.test(event.key)">
          

          或者

          <input type="text" onkeypress="return /[0-9]/i.test(event.key)">
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-03-26
            • 1970-01-01
            • 2015-10-08
            • 2011-03-09
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-10-24
            相关资源
            最近更新 更多