基本上,如果我的表单中的七个文本框之一为空,我想做的是提醒相同的消息。我一直在玩弄它,但现在我开始感到恼火;帮助!有时我会收到 function validepiste() is not defined 错误,有时我不会收到错误,但即使所有的盒子里都有东西,也会有警告。我认为错误可能是由于错误使用了 || (或)运算符,或长度位。这是函数(在 head 标签内):
<script type="text/javascript">
function validatepiste()
{
// all form fields must be filled in
var a= document.piste.nom.length;
var b= document.piste.email.length;
var c= document.piste.numtel.length;
var d= document.piste.adresse.length;
var e= document.piste.ville.length;
var f= document.piste.length;
var g= document.piste.travaux.length;
if (a||b||c||d||e||f||g==0){
alert("Vous devez remplir toutes les cases.");
return false;
}
return true
}
</script>
以及对 html 中的函数的调用:
<input type="submit" name="Submit" value="Envoyer" onClick="return validatepiste()"/>
谢谢!
最佳答案
我看到您的代码有两个问题。
第一个问题
看来您正在尝试直接访问表单元素(不存在)上的 length
属性。您真正想要做的是访问表单值的 length
。所以不是这个:
var a= document.piste.nom.length;
这样做:
var a= document.piste.nom.value.length;
起初我没有看到这一点,但@Napster 在他的回答中提到了这一点。所以感谢他。
第二个问题
你的 if 语句有一些错误的逻辑。请尝试以下操作。
if (a==0||b==0||c==0||d==0||e==0||f==0||g==0) { ... }
你原来的表达是在问以下...
如果 a
为真,
或者 b
是真实的,
或者 c
是真实的,
或者 d
是真实的,
或者 e
是真实的,
或者 f
是真实的,
或者 g
等于 0
然后显示警报。
使用现有代码不会触发警报的唯一情况是,如果所有字段都为空白,g
除外。
您可以阅读 article about what truthy means如果你愿意。
关于javascript - 这个表单验证有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5177270/