2011-03-03 67 views
1

好吧,所以我一直在这一个难以置信的日子,它让我很沮丧。 (如果我忽略了一些简单的话,会让我更加沮丧)。Javascript只检查一个字段

我有一个在PHP中生成的表单,我想验证某些部分是否填写完毕。我通过当用户点击提交button.The 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

你能提供HTML表单与此一起去。可能有名称/编号是错误的。代码本身没有错。 – 2011-03-03 17:39:13

回答

3

几个问题,我注意到你的示例代码。

  • 最后getElementById调用有不正确的套管。最后的d是大写,它不应该是
  • 将该值与字符串文字比较应该由===而不是==完成。
  • JSLint通过让行以||开头,而不是以||结束上一行,从而声明if语句中存在换行符问题。

第一项和第三项很可能是导致您的问题的项目。

+0

您的第一个和第三个建议虽然没有完全解决问题,但它们是问题的一部分。 getElementById适用于textarea框,但不适用于常规文本输入框。 – BOMEz 2011-03-03 18:59:51

+0

@BOMEZ,谢谢。这很有趣。 – JaredPar 2011-03-03 19:00:43

0

请使用Javascript & &运算符,如果两个元素均为真,则返回true。 ||如果至少有一个元素为真,那么操作符的计算结果为true,这就是您的情况。你可以看看Javascript boolean Logic

+0

如果任何一种情况属实,则OP希望它为真。 '||'在这里似乎是正确的调用 – JaredPar 2011-03-03 17:39:22

+0

但是使用&&表示它会检查它们是否全部为空或处于默认值。如果其中一人填写完毕,其他人仍然空着不会提交表格? – BOMEz 2011-03-03 17:39:53

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> 
相关问题