输入类型号,只接受数字而不是字母jquery

时间:2015-03-12 10:01:09

标签: javascript jquery html validation input

$("#number").bind('keyup change click', function() {
            if ($(this).val().match(/^\d+$/)) {

            } else {
                alert("Not a number");
            }

这是我的代码,用于获取仅来自用户的数字输入。没关系,但我对start of click有些问题;当我点击它时alert即使它仍然是empty它也不是数字,所以我添加了另一个代码:

if ($(this).val().length === 0) {
}

从代码的开头。它确实解决了空的问题或开始点击问题,当我输入lettersdoes not alert消息时。如何解决这个问题?赞赏任何建议

2 个答案:

答案 0 :(得分:2)

@Rias有上面的答案,但是,您也可以执行以下操作。

$("#number").bind('keyup change click', function() {
    //Check only if the text box is not empty
    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^\d+$/)) {
        } else {
            alert("Not a number");
        }
    }
});

演示@ Fiddle

更新:如果您要删除任何非数字字符,请尝试以下操作。

$("#number").bind('keyup change click', function() {

    if ( $.trim($(this).val()) != "") {
        if ($(this).val().match(/^\d+$/)) {
        } else {
            alert("Not a number");
            $(this).val( $(this).val().replace(/[^0-9]+/gi, "") );
        }
    }
});

答案 1 :(得分:1)

将正则表达式更改为/^\d*$/,它也会接受一个空字段,因为量词*接受\d个数字的0个或多个字符,而{{1}需要一个或多个匹配的数字。

+
$(document).ready(function() {


  $("#number").bind('keyup change click', function() {
    if ($(this).val().match(/^\d*$/)) {

    } else {
      alert("Not a number");
    }
  });

});