好的,所以我已经被困在这一天好几天了,令我很沮丧。 (如果它是我忽略的简单的话,会让我更加沮丧。)
我有一个用PHP生成的表单,我想验证某些部分已填写完毕。我在用户点击提交按钮时通过JavaScript检查执行此操作。JavaScript代码如下:
<script language="JavaScript">
function checkFields()
{
if (document.getElementById('ldescription').value == '' || document.getElementById('uname').value == ''
|| document.getElementById('sdescription').value == '' || document.getElementById('email').value == ''
|| document.getElementById('platf').value == "Select Group" || document.getElementByID('cate').value == "Select Category" )
{
alert("Please fill out all of the starred (*) items" );
return false;
}
}
</script>
由于某些原因,这仅检查 ldescription 字段。如果该字段有文本但其他所有字段都是空的,那么就会像所有内容一样填写。此外,如果我更改了支票的顺序, ldescription 除了第一次检查之外的任何地方,即使所有字段都为空,也不会检查任何内容。
有什么想法吗?
编辑: 修好了。除了我标记为正确的建议, document.getElementById('item')。value 命令仅使用textarea框而不是常规文本输入框。通过将命令更改为 document.MyForm.myTextName.value ,一切都已落实到位。
答案 0 :(得分:3)
我在示例代码中注意到了一些问题。
getElementById
来电有不正确的外壳。最终的d
是大写的,不应该是===
而不是==
完成。 ||
开头而不是让前一行以||
结尾。 第一项和第三项最有可能导致您的问题。
答案 1 :(得分:1)
在if条件中,当你断线时,确保该行中的最后一个标记是OR运算符||。
Javascript执行分号插入,因此可能是在一个不好的地方插入分号(由解释器自动,无形地插入)。
尝试以下代码
<script language="JavaScript">
function checkFields()
{
if (document.getElementById('ldescription').value === '' ||
document.getElementById('uname').value === '' ||
document.getElementById('sdescription').value === '' ||
document.getElementById('email').value === '' ||
document.getElementById('platf').value === "Select Group" ||
document.getElementById('cate').value === "Select Category")
{
alert("Please fill out all of the starred (*) items" );
return false;
}
}
</script>
答案 2 :(得分:0)
请使用Javascript&amp;&amp;如果两个元素都为true,则返回true。 ||运算符求值为true,以防至少一个元素为true,这就是你的情况。您可以查看Javascript boolean Logic