getElementById 无法获取表单上的控件
getElementById cannot grab control on the form
我有以下搜索表单:
<form method="get" action="SearchResults.asp" id="frmSearch" name="frmSearch">
<input id="q" name="q" type="text" size="50" />
<input type="submit" value="Search" id="button1" name="button1" />
</form>
我使用以下方法将 Javascript 添加到表单提交事件:
window.onload = function(){
var frm = document.getElementById("frmSearch");
if (window.addEventListener){
frm.addEventListener('submit',function() {validate(frm);} ,false);
}else if (window.attachEvent){
frm.attachEvent('onsubmit', function() {validate(frm);} );
}
}
验证函数如下:
function validate(frm) {
alert(frm.id);
var inputs = frm.getElementsByTagName("input");
alert(inputs[0].id);
alert(frm.getElementById("q"));
if (frm.getElementById("q").value=='') {
alert("Please enter your search terms.");
frm.getElementById("q").focus();
return false;
}
frm.getElementById("button1").disabled = true;
return true;
}
验证函数运行但显然出错,因为 Javascript 忽略了行
frm.getElementById("q")
因为alert(frm.id);
returns form id "frmSearch"
, alert(inputs[0].id)
returns "q"
是文本框的id, 但是alert(frm.getElementById("q"))
根本不显示任何内容,甚至没有空的警告框。
任何人都可以帮助我诊断问题吗?
getElementById
是文档的一个方法,不是每个HTML元素。您需要致电 document.getElementById()
.
我有以下搜索表单:
<form method="get" action="SearchResults.asp" id="frmSearch" name="frmSearch">
<input id="q" name="q" type="text" size="50" />
<input type="submit" value="Search" id="button1" name="button1" />
</form>
我使用以下方法将 Javascript 添加到表单提交事件:
window.onload = function(){
var frm = document.getElementById("frmSearch");
if (window.addEventListener){
frm.addEventListener('submit',function() {validate(frm);} ,false);
}else if (window.attachEvent){
frm.attachEvent('onsubmit', function() {validate(frm);} );
}
}
验证函数如下:
function validate(frm) {
alert(frm.id);
var inputs = frm.getElementsByTagName("input");
alert(inputs[0].id);
alert(frm.getElementById("q"));
if (frm.getElementById("q").value=='') {
alert("Please enter your search terms.");
frm.getElementById("q").focus();
return false;
}
frm.getElementById("button1").disabled = true;
return true;
}
验证函数运行但显然出错,因为 Javascript 忽略了行
frm.getElementById("q")
因为alert(frm.id);
returns form id "frmSearch"
, alert(inputs[0].id)
returns "q"
是文本框的id, 但是alert(frm.getElementById("q"))
根本不显示任何内容,甚至没有空的警告框。
任何人都可以帮助我诊断问题吗?
getElementById
是文档的一个方法,不是每个HTML元素。您需要致电 document.getElementById()
.