我正在使用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/)

但是我不推荐它。这不是预期的文本框行为,并且往往会使至少某些用户感到困惑。因此,如果该值不在预期范围内,最好只显示一条警告。

07-24 19:10
查看更多