2011-10-31 72 views
0

有谁知道为什么这个JavaScript不工作?它返回该字段为空时,它不是HTML/JavaScript验证失败

我使用的表格上的HTML是:

onsubmit="return validate_form ();" method="post" name="AddPTR" 

和JavaScript是:

<script type="text/javascript"> 
function validate_form () 
{ 
valid = true; 

if (document.forms.AddPTR.PTR2.value == "") 
{ 
    alert ("Please fill in the PTR box."); 
    valid = false; 
} 

return valid; 
} 

</script> 
+0

在哪里输入字段的HTML? –

+2

可能您在下面的链中找到空引用:'document.forms.AddPTR.PTR2.value'。当在javascript中声明局部变量时,最好放置一个'var'。所以'var valid = true;'。这可以避免*污染全球范围。 –

+1

应该工作正常,请参阅示例:http://jsfiddle.net/ezDR4/ – ComFreek

回答

5

document.forms是一个标准的DOM属性,与文档中的<form>标签保持一个阵列。

如果您要访问的AddPTR形式,你可以做到这一点有两种方式:

  • 如果你只得到了文档中的一个<form>,或知道他们的顺序,你可以访问按索引排列的数组:document.forms[0]
  • 如果你想得到<form>的名字AddPTR,你可以从document.forms属性中获取它作为关联数组:document.forms["AddPTR"]。这种方法具有独立于文档布局的优点。

看到这个W3C链接上的一些信息,如何访问关联数组:Objects in JavaScript: Objects as associative arrays

+0

嗨,我刚刚尝试使用if(document.forms [“AddPTR”] [PTR2] .value ==“”)仍然没有运气,任何想法? –

+0

只需使用'document.forms [“AddPTR”] .PTR2.value ==“”'或'document.forms [0] .PTR2.value ==“”'。你也可以执行'document.forms [“AddPTR”] [“PTR2”]。value ==“”'。请记住在将数组作为关联数组访问时使用该键的字符串。 –

+0

您好,您建议的第一个和第三个选项显示请填写字段消息,即使字段填写,第二个建议不显示消息如果空或填充 –