5

我想验证预先配置的数字范围内的输入字段。只允许从 1 到 24 的数字。

我能怎么做?


使用这样的自定义解决方案:

    $('.field').keypress(function(event) {
        var val = parseInt($(this).val()) + HERE_I_SHOULD_SUM_THE_NEWLY_ADDED_DIGIT;
        if(val < 1 || val > 24) event.preventDefault();
    });

我能够检索当前输入值。如何添加新添加的数字?

4

5 回答 5

11

这样的事情怎么样?

​$("input").on("change", function() {
    var val = Math.abs(parseInt(this.value, 10) || 1);
    this.value = val > 25 ? 24 : val;
});​​​​​​​​​​​​​

演示:http: //jsfiddle.net/3jw4S/

于 2012-06-20T14:02:25.727 回答
2

现代浏览器中有用于输入的内置功能:

可以在此处找到全面的概述:http ://www.the-art-of-web.com/html/html5-form-validation/

基本上,你可以写:

<input type="number" min="1" max="24" step="1" required>

使用模式,您可以定义正则表达式进行测试:

pattern="\d[0-3]"

例子

于 2012-06-20T14:13:28.153 回答
1

有一个用于 JQuery 的插件可以帮助您进行名为 Valid8 的验证:

http://unwrongest.com/projects/valid8/

您将需要使用正则表达式,例如:

^([1-9]|[1]?[1-9]?|[2][0-4]|10)$
于 2012-06-20T13:59:48.150 回答
0
function validateForm()
{
var x=document.forms["myForm"]["fname"].value;
if (x==null || x <1|| x >24)
  {
  alert("Value must be between 1 & 24");
  return false;
  }
}

沿着这些思路的东西应该起作用

于 2012-06-20T14:01:29.067 回答
0

试试这个

function validate() {
 var x = parseInt(value,10) // its the value from the input box;
 if(isNaN(x)||x<1||x>24)
 {
  alert("Value must be between 1 and 24");
  return false;
  }
}
于 2012-06-20T14:08:40.923 回答