我有一个HTML表单,如下所示:
ar form={
formName: document.getElementById("contactus"),
name: document.getElementById("name"),
email: document.getElementById("email"),
comment: document.getElementById("question")
};
//form submit
form.formName.addEventListener( "submit", checkform );

<form name="contactus" method="post" action="html_form_send.php">
<label for="name">Name:</label><br /><input <input type="text" name="name" maxlength="50" size="59" autofocus required/><br /><br />
<label for="email">E-Mail Address:</label><br /><input type="email" name="email" maxlength="50" size="59" required/><br /><br />
<label for="question">Question:</label><br /><textarea name="question" maxlength="1000" cols="50" rows="6" required></textarea><br /><br />
<input class="c1_scButton" type="submit" value="send"/>
</form>
<script type="text/javascript" src="js/validate.js"></script>
&#13;
问题是Firebug显示form.formName
为空,其余的表单值也是如此。为什么他们没有获得元素?
该脚本的最终目标是验证表单数据。我认为如果元素将加载,表单的其余部分将起作用。
答案 0 :(得分:2)
因为你试图通过ID获取元素,当它没有ID时。
将ID添加到表单标记应解决问题:
std::map<double, double>::const_iterator
getIt(map<double, double> const& o)
{
return o.begin();
}
但您可能更愿意将方法更改为<form name="contactus" ID="contactus" method="post" action="html_form_send.php">
,因为您根本不使用ID。
在这里:http://www.w3schools.com/jsref/met_doc_getelementsbyname.asp
答案 1 :(得分:0)
您的表单中包含名称联系人,但您正试图通过ID获取该表单。
此外,输入名称似乎有误:
<input <input type="text" name="name" maxlength="50" size="59" autofocus required/>
您可能希望删除第一个<input
。
最后,如果您将JavaScript包含在页面顶部,它可能会在页面完全加载之前运行,这意味着表单和/或输入元素可能尚未在DOM中。
要解决此问题,请添加一个在DOM准备就绪时触发的事件侦听器。如果您正在使用JQuery,请执行以下操作:
$(document).ready(function(){
//do stuff here
});
如果您不需要JQuery,请不要将其包含在内。您可以在this question的答案中找到有关如何执行此操作的详细信息。
答案 2 :(得分:0)
这样可以确定..
<form name="contactus" id='contactus' method="post" action="html_form_send.php">
<label for="name">Name:</label><br />
<input type="text" id='name' name="name" maxlength="50" size="59" autofocus required/><br /><br />
<label for="email">E-Mail Address:</label><br />
<input type="email" id='email' name="email" maxlength="50" size="59" required/>
<br /><br />
<label for="question">Question:</label><br />
<textarea name="question" id='question' maxlength="1000" cols="50" rows="6" required></textarea><br /><br />
<input class="c1_scButton" type="submit" value="send"/>
</form>