我试图使一个错误框弹出时,文本框内有字母,但它不工作,我不确定我需要做什么。
下面是
部分的代码 <tr>
<td align="right"> 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
指向事件发生的元素。