Javascript只检查一个字段

时间:2011-03-03 17:28:59

标签: javascript

好的,所以我已经被困在这一天好几天了,令我很沮丧。 (如果它是我忽略的简单的话,会让我更加沮丧。)

我有一个用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 ,一切都已落实到位。

3 个答案:

答案 0 :(得分:3)

我在示例代码中注意到了一些问题。

  • 最后一次getElementById来电有不正确的外壳。最终的d是大写的,不应该是
  • 将值与字符串文字进行比较应由===而不是==完成。
  • JSLint抱怨if语句中存在换行问题,方法是让行以||开头而不是让前一行以||结尾。

第一项和第三项最有可能导致您的问题。

答案 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