【问题标题】:How can accept only number in input box如何在输入框中只接受数字
【发布时间】:2010-03-06 23:45:46
【问题描述】:

我有输入框。即使用户右键单击文本并使用鼠标粘贴,我也只想在其中输入数字。

我不想要插件..只是 jquery 代码

我使用 keyup 事件,但它不起作用

如果用户输入除数字以外的任何其他字符,它应该立即替换为空字符串

【问题讨论】:

    标签: jquery


    【解决方案1】:

    我应该做的是在他们离开输入字段时检查输入字段

    所以 jquery blur 可以完成这项工作。或者可能是更改事件。

    【讨论】:

    • 为简单起见,这是最佳选择。如果您想要完全控制,您将改为阻止对 keydown/keypress 的任何不想要的组合键的默认操作(正确操作并保持预期行为变得相当复杂......),以及在过滤非插入符号时保留插入符号位置的能力-其他事件的数字字符(如粘贴)。
    【解决方案2】:

    我不知道你为什么不想要一个插件,有一些非常好的插件,比如this one。您可以随时将他们的代码添加到您的页面中,而不是使用单独的文件。

    【讨论】:

      【解决方案3】:

      如果你想使用点使用。

      function numonly(root){
          var reet = root.value;   
          var arr1 = reet.length;   
          var ruut = reet.charAt(arr1-1);   
              if (reet.length > 0){   
              var regex = /[0-9]|\./;
                      if (!ruut.match(regex)){   
                  var reet = reet.slice(0, -1);   
                  $(root).val(reet);   
                  }   
              }   
          }
          //Then use the event handler onkeyup='numonly(this)'
      

      【讨论】:

        【解决方案4】:
        <input type="text" name="test" id="test"  value="0" />
        
        <script type="text/javascript">
        $(function(){
            $("#test").keyup(function(){
                $(this).val( parseInt($(this).val()) );
            });
        });
        

        这将使您的输入始终包含数字输入

        【讨论】:

        • 这在用户右键单击文本框并粘贴非数字时不起作用
        • 是的,我尝试..您的代码不起作用..尝试此步骤..页面加载时,使用鼠标右键单击输入并粘贴非数字..它接受
        • 这也会对插入符号的放置造成严重破坏。
        • 最后触发你的监听器,这将阻止在页面加载时插入,如下所示: $("#test").keyup(function(){ $(this).val( parseInt($ (this).val()) ); }).keyup();
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-03-26
        • 2011-03-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多