测试表单输入是jquery和php的1或2位整数

我有一个有五个字段的表单都设置为maxlength =“2”。

基本上,我希望可以输入的唯一值是一个或两个数字的整数,因为在值存储在数据库之前对这些字段执行计算。

是否有任何jquery不会让用户输入不是整数的值?

还有什么是用jquery和phpvalidation这个的最好方法? 我找到了一些方法,但我需要确保它的安全,避免字符,-2,.1等


解决了

对于我使用的PHP部分

if(!ctype_digit($_POST['value'])) 

这只允许积极的整数

而对于JavaScript

  $('.inputQuantity').keyup(function(){ this.value = this.value.replace(/[^0-9\.]/g,''); }); 

它删除输入字段中不是数字的任何条目。

以上都是工作,虽然我认为有些人更喜欢使用focusout(function()而不是keyup(function();)

测试一个字符串是否只包含一个数字或两个数字,在PHP中,可以使用正则表达式完成:

 // $string is supposed to contain your data -- maybe obtained from $_POST['field_name'] if (preg_match('/^\d{1,2}$/', $string)) { // it's one or two digits } 

基本上,这测试:

  • 字符串的开头: ^
  • 数字: \d
    • 一两次: \d{1,2}
  • 字符串结尾: $

而且,在Javascript中,我想你可以使用相同的正则表达式:

 // str is supposed to contain your data if (/^\d{1,2}$/.test(str)) { // it's one or two digits } 
 $("input[maxlength=2]").change(function(){ var val = $(this).val(); $(this).val(parseInt(val)); }); 

没有测试过。

确保这一点的一个理论上新奇的方法是:

  

但是你仍然需要旧版浏览器的Javascript:

  

无论如何都无法避免在服务器端进行检查。

我专门为你创建了一个基于PHP的function –

 

我测试过,它完美无缺! 告诉我它是否有用。

希望它有效!

解决了

对于我使用的PHP部分

 if(!ctype_digit($_POST['value'])) 

这只允许积极的整数

而对于JavaScript

  $('.inputQuantity').keyup(function(){ this.value = this.value.replace(/[^0-9\.]/g,''); }); 

它删除输入字段中不是数字的任何条目。

以上都是工作,虽然我认为有些人更喜欢使用focusout(function()而不是keyup(function();)