【问题标题】:Disable user of 0 as first number in input box jquery禁用0的用户作为输入框jquery中的第一个数字
【发布时间】:2010-08-15 13:30:41
【问题描述】:

我有一个输入框:

<input class="longboxsmall" type="text" name="number" value=""/>

我想禁止数字 0 是框中输入的第一个数字,我该怎么做???我可以使用 Jquery 吗??

【问题讨论】:

    标签: jquery input


    【解决方案1】:

    $(".longboxsmall").keyup(function(){
        var value = $(this).val();
        value = value.replace(/^(0*)/,"");
        $(this).val(value);
    });
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
    <input class="longboxsmall" type="text" name="number" value=""/>

    JS

    $(".longboxsmall").keyup(function(){
        var value = $(this).val();
        value = value.replace(/^(0*)/,"");
        $(this).val(value);
    });
    

    HTML

    <input class="longboxsmall" type="text" name="number" value=""/>
    

    试试jsfiddle


    最好拦截其他事件,例如模糊、变化、聚焦等。 见jquery。 谢谢@Simen Echholt。


    解释:

    $(".longboxsmall").keyup

    Jquery 获取类 longboxsmall 的每个元素,并准备在 onkeyup 事件上调用函数。

    var value = $(this).val();
    value = value.replace(/^(0*)/,"");
    $(this).val(value);
    

    此函数使用正则表达式替换 begin (^) 中的每个 0 值。

    【讨论】:

    • 这可以通过用鼠标粘贴文本来忽略。还应该绑定到mousedown/up 和/或change
    • 这只允许用户输入零,并阻止他们输入任何进一步的数字。我想阻止他们输入 0 作为数字字符串中的第一个数字
    • @user342391 对不起,你错了。它允许输入任何内容。仅在第一个字符中阻止 0。在这里试试jsfiddle.net/s5B4B
    【解决方案2】:

    当然。使用具有合适正则表达式的输入过滤器插件之一(如this)。

    【讨论】:

      【解决方案3】:

      为了不看到输入中的 0 然后将其删除,您可以使用按键:

      $('.longboxsmall').on('keypress', function(e) { if (!$(this).val() && e.which == 48) return false; });

      【讨论】:

        【解决方案4】:

        最好的方法是防止在用户输入时在第一个位置输入 0。我们可以通过使用 keyup 事件来实现这一点。这样我们就可以避免很多类似的情况了。

        1. 最终用户首先输入 123,然后在其中添加 0,例如 0123。
        2. 它可以防止像 0123 这样的复制粘贴。

            $(document).on('keyup','#TextBoxID', function(event){
                          if($(this).val().match(/^0/)){
                            $(this).val('');
                            return false;
                        }
                      }); 

        【讨论】:

          【解决方案5】:

          $(".longboxsmall").keyup(function(){
              var value = $(this).val();
              value = value.replace(/[^(1*)]+|[^(0*)]+/,"");
              $(this).val(value);
          });
          <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
          <input class="longboxsmall" type="text" name="number" value=""/>

          【讨论】:

          • 请在您的代码中添加一些解释。不鼓励在 SO 上仅提供代码答案。
          猜你喜欢
          • 1970-01-01
          • 2022-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-04-16
          • 1970-01-01
          • 2021-04-29
          • 1970-01-01
          相关资源
          最近更新 更多