我正在使用jQuery Spinner,设置了最小(0)和最大(500)值。如何防止用户在输入框中直接输入非数字值(或0-500范围外的值)?最小值和最大值在用户使用微调按钮时起作用,但在输入表单中键入某些内容时则无效。
最佳答案
您可以使用如下技术来强制数字输入:
var MIN = 0;
var MAX = 500;
$('#foo').on('keyup', function(e) {
var v = parseInt($(this).val());
if (isNaN(v)) {
return $(this).val(MIN);
}
if ($(this).val() < MIN) {
$(this).val(MIN);
} else if ($(this).val() > MAX) {
$(this).val(MAX);
} else {
$(this).val(v);
}
});
(请参见示例:http://jsfiddle.net/foxbunny/ustFf/)
但是我不推荐它。这不是预期的文本框行为,并且往往会使至少某些用户感到困惑。因此,如果该值不在预期范围内,最好只显示一条警告。