PHP验证整数无效



我试图使一个错误框弹出时,文本框内有字母,但它不工作,我不确定我需要做什么。

下面是

部分的代码
  <tr>
    <td align="right">&nbsp;&nbsp;Weight:</td>
    <td><input type="text" name="weight"  value="<?php echo $weight?>" onblur="validateinteger(Diamonds.weight,'weight')" <?php if($formmode==1) echo 'disabled';?> size="15" /></td>
 </tr>

我是这个网站的新手,所以我不知道如何在这里发布所有的代码,所以我把所有的代码都上传到了pastebin。

完整的代码请点击。http://pastebin.com/ZfUe6GWq

Thanks in advance

假设您应该修改validateinger函数。首先,看一下parseInt规范。您应该记住,即使parameter不完全是数字,它也会返回一个数字。例如:parseInt("12px")将返回12。正因为如此,你最好简单地用isNaN测试值(如果值是"12px",它将返回true):

function validateinteger(whichcontrol, controlname){
   if(whichcontrol.value.length==0)
     return true;
   else if(isNaN(whichcontrol.value))
     alert(controlname + " must be a number!"); 
   else
     return true;
  }

但是上面的代码只会检查字符串是否为数字,而不是整数(就像函数名所说的)。要检查value是否恰好是整数,您可以执行以下操作(使用regexp):

function validateinteger(whichcontrol, controlname){
   if(whichcontrol.value.length==0)
     return true;
   else if(!(/^[d]+$/.test(whichcontrol.value)​))
     alert(controlname + " must be a number!"); 
   else
     return true;
}

(基于此答案)

注意:

代替onblur="validateinteger(Diamonds.weight,'weight')",你可以做onblur="validateinteger(this,'weight')"。其中this指向事件发生的元素。

最新更新