禁用用户0作为输入框jquery中的第一个数字

时间:2010-08-15 13:30:42

标签: jquery input

我有一个输入框:

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

我想不允许数字0是在框中输入的第一个数字我该怎么办?我可以使用Jquery吗?

5 个答案:

答案 0 :(得分:3)

$(".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。 Tks @Simen Echholt。


说明:

$(".longboxsmall").keyup

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

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

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

答案 1 :(得分:0)

当然。使用其中一个输入过滤器插件(如this)和正确的regexp。

答案 2 :(得分:0)

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

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

答案 3 :(得分:0)

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

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

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

答案 4 :(得分:0)

  ...
  "scripts": {
    ...
    "preci": "rm -fr node_modules",
    "ci": "yarn install --frozen-lockfile"
  },
  ...
$(".longboxsmall").keyup(function(){
    var value = $(this).val();
    value = value.replace(/[^(1*)]+|[^(0*)]+/,"");
    $(this).val(value);
});