我正在尝试在文本框内部的字母时弹出一个错误框,但它不起作用,我不确定我需要做什么。
以下是
部分的代码 <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
提前致谢
答案 0 :(得分:0)
假设您应该修改validateinger
功能。
首先,看看parseInt
规范。您应该记住,即使参数不完全是数字,它也会返回一个数字。例如:
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;
}
但是上面的代码只会检查字符串是否是数字,而不是整数(如函数名称所示)。 要检查值是否完全是整数,您可以执行下一步(使用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;
}
(基于this回答)
注意:强>
而不是onblur="validateinteger(Diamonds.weight,'weight')"
您可以onblur="validateinteger(this,'weight')"
。 this
指向事件发生的元素的位置。