如果数字或字母使用测试检查输入值

时间:2017-03-02 08:48:58

标签: jquery

$('input').on("input", function() {
  if (isWhole($(this).val())) {
    return false;
    //$(this).removeAttr("style").removeClass("not");
  } else {
    //$(this).css("border", "2px solid red").addClass("not");

  }
});


function isWhole(n) {
  return /^\d+$/.test(n);
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="" type="text" id="" />

在这个OP我想让用户只输入数字。如果他们输入字母,则不应该允许它意味着不应该在输入中写入。

  1. 我用test测试输入数据是否为数字。
  2. 当我输入字母边框时,我评论返回false。如果我输入数字边框被删除,这是我想要的。
  3. 单独使用return false进行尝试。我假设它不会让输入的信件显示但仍然显示。
  4. 如何不让用户输入字母

2 个答案:

答案 0 :(得分:2)

测试值,如果数字允许,或者在这种情况下,允许数字部分

&#13;
&#13;
$('input').on("input", function(e) {
  var val = this.value;
  if (!isWhole(val)) {
    var num = parseInt(val);
    $(this).val(isNaN(num)?"":num);
  }
});


function isWhole(n) {
  return /^\d+$/.test(n);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input class="" type="text" id="" />
&#13;
&#13;
&#13;

答案 1 :(得分:1)

只需将任何非数字符号替换为空字符串:

&#13;
&#13;
$('input').on("input", function(e) {
    $(this).val($(this).val().replace(/[^\d]/, ''));
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" />
&#13;
&#13;
&#13;