我希望允许用户在输入框中输入1到999之间的值。
我尝试了以下方法
<input name="quantity" class="numbers" value=""/>
$('.numbers').keypress(function (e) {
var value = parseInt($(this).val());
if (value <= 0 || value > 999) {
return false;
}
if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
return false;
}
});这不起作用,当我输入零值时,我被卡住了,这里是https://jsfiddle.net/kcet86s8/4/小提琴的链接。
我哪里出问题了?
发布于 2016-06-14 00:52:26
您可以使用<input type="number">元素、带有参数0, -1的input事件String.prototype.slice()删除input值的最后一个字符,如果在第一个if条件下使用valueAsNumber属性代替parseInt()
$(document).ready(function() {
$(".numbers").on("input", function(e) {
var value = this.valueAsNumber;
if (value <= 0 || value > 999) {
this.value = this.value.slice(0, -1);
}
// if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
// return false;
// }
});
});<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js">
</script>
<input name="quantity" type="number" class="numbers" value="" />
jsfiddle https://jsfiddle.net/kcet86s8/5/
https://stackoverflow.com/questions/37801127
复制相似问题