我是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”消息。
答案 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");
}
});
});
答案 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');
}
});
});
但是,与其他解决方案不同,它不会阻止用户输入无效数据,但会在输入后回溯删除该字符。这可能会也可能不符合您的期望。