2013-05-15 56 views
0

我在表格中应该只允许小于边界值2147483647(Int32的最大值)的数值的文本框?任何人都可以帮我用JQuery做这件事吗? 我已经尝试通过在eclipse中添加一个验证插件,但它不工作。 在此先感谢。在javascript中设置一个文本框的最大值

+4

你能告诉我们的代码?你尝试过的东西?我们可以帮助你,不要为你解决问题。 – steo

+2

你应该阅读[这个答案](http://stackoverflow.com/a/4859025/2190252)在另一个问题上发布。 –

+0

你只想要小于2147483647的正整数吗? – kennebec

回答

2

这里的示例代码:

$('#textboxID').on('change',function(){ 
    if($(this).val()>=2147483647){ 
    //put error span with nice css 
    } 
    }); 
+0

删除我的答案,并把它改为upvoted。事实证明,无论max属性的值如何(至少在当前的Chrome中),你都可以在''中输入任何内容。所以,我的解决方案可能很有趣,但它在实践中并不是很有用。 – bfavaretto

+0

@bfavaretto“小于边界值2147483647”...此答案将接受“2147483647”,这是无效的。 – plalx

+0

@plalx编辑它只是为你:-) –

1

HTML:

<input type="text" id="numberField" /> 
<input id="submit" type="submit" value="Submit" /> 

JQuery的:

$('#submit').click(function(){ 
    var numberField = $('#numberField'); 
    var number = parseInt(numberField.val(), 10); 
    if(isNaN(number) || number > 2147483647){ 
     numberField.val(''); 
     alert('Not a number'); 
    } 
    else 
     alert('Number is: '+ number); 
}); 

的jsfiddle http://jsfiddle.net/R3Rx2/1/

1

你可以做这样的事情:

DEMO:http://jsfiddle.net/mSSYT/1/

$('#test').on('keyup', function (e) { 
    var $self = $(this), 
     v = $self.val(), 
     max = 2147483647; 

    //blank any input that isint a number 
    if (!/^\d*$/.test(v)) { 
     $self.val(''); 
     return; 
    } 

    //trim the value until it meets the condition 
    if (v >= max) { 
     while (v >= max) { 
      v = v.substring(0, v.length - 1); 
     } 

     $self.val(v); 
    } 
}); 
相关问题