只想使用jQuery在输入框中输入数字1到5

时间:2013-10-10 10:41:34

标签: jquery keypress

我是jQuery的新手,对于如何在输入框中只获取1到5的数字有点困惑。以下是我的代码:

HTML

<div id="errmsg"></div>

<input type="text" id="number" maxlength="1"/>

SCRIPT

$(document).ready(function(e) {
$('#number').keydown(function(e){
if (e.which != 8 && e.which != 0 && (e.which < 49 || e.which > 53)) {
        //display error message
        $("#errmsg").html("Digits Only").show().fadeOut("slow");
               return false;
    }

    else if (e.which == 48 || e.which < 48 || e.which > 53) {
        //display error message
        $("#errmsg").html("5 Only").show().fadeOut("slow");
               return false;
    }
})

})
</script>

当用户在输入框中输入任何金额时,如果他输入任何字符,则会显示错误消息“仅限数字”。如果他输入的数字超过5,则会显示错误“仅5”消息。

2 个答案:

答案 0 :(得分:1)

试试这个

$(document).ready(function() {
    $("#number").keydown(function(event) {
        console.log(event.keyCode);
        if ( $.inArray(event.keyCode,[49,50,51,52,53]) !== -1) 
        {
                 alert("allow");
        }
        else {
            alert("not allow");      
        }
    });
  });

FIDDLE

答案 1 :(得分:0)

我感谢您已经接受了答案,但对于它的价值,我认为这是一个更加用户友好的解决方案:JSFiddle

它处理控制字符(例如 Del Backspace Tab Enter )和通过输入的数字数字键盘。它还满足您对非数字字符和数字的单独错误消息的要求&gt; 5。

$(document).ready(function() {
    $("#number").on('keyup', function(event) {

        var entered = $(this).val(),
            content = parseInt(entered,10);

        if (entered !== '' && isNaN(content)) {

            $('#errorMsg').text('Digits only');
            $(this).val('');

        } else if (content > 5) {

            $('#errorMsg').text('Only 5');
            $(this).val('');

        } else {

            $('#errorMsg').text('Okay');

        }
    });
});

但是,与其他解决方案不同,它不会阻止用户输入无效数据,但会在输入后回溯删除该字符。这可能会也可能不符合您的期望。