按钮提交表单,JS返回问题

近我遇到个很纠结的问题,我有个表单,action属性是提交到一个验证页面,暂且不管它,表单的onsubmit提交到一个JS,JS判断表单中几个文本框的value值是否为空,为空的话显示默认值为隐藏值的DIV,并返回。但是错误出来了,每当按下按钮后,JS有返回错误,但是页面会被刷新一次,这样返回的错误提示又被刷没了,请问这是怎么回事?
如下为代码:
JS.JS
function goform1(){
if (document.form1.names.value="")
{document.getElementById('apdiv1').style.display=""
document.getElementById('apdiv2').style.display="none";
document.form1.names.focus();
return false;
}
if (document.form1.pass.value="")
{document.getElementById('apdiv2').style.display=""
document.getElementById('apdiv1').style.display="none";
document.form1.pass.focus(); return false;}
return true;
}

如下是客户页面代码:
<form action="11.asp" mothod="post" id="form1" onsubmit="return goform1()">
<input type="text" id="names" value="">
<br>
<div id="apdiv1" style="display:none; width:100px;">ok,names</div>
<br>
<input type="password" id="pass" value="">
<br>
<div id="apdiv2" style="display:none; width:100px;">pass,ok</div>
<br>
<input type="submit" id="login" value="login">
</form>

请指教谢谢!

第1个回答  2010-03-21
有几点需要说明:
1、你在获取表单元素的值的时候,使用的是【document.form1.names.value】,这种方式是通过name属性来获取的,也就是说,获取name属性为form1中的元素name属性为names的值。但是,你只是设定了id值,这样将不能获取到值。
2、一个很低级的错误,上面的人在回答时也没有注意到这个问题,就是【=】与【==】的问题,你使用的是【document.form1.names.value=""】,也就是说,你每次提交的时候其实都是先将你指定的对象的值赋予空值,然后判断,因为空值转换成Boolean是false,因此,其实你的两个if语句就是两个【if(false)】语句。因此,最后都是返回true【最后返回的那个】。
修改后的结果如下:
<script type="text/javascript">
function goform1(){
if (document.form1.names.value=="")
{
document.getElementById('apdiv1').style.display="";
document.getElementById('apdiv2').style.display="none";
document.form1.names.focus();
return false;
}
if (document.form1.pass.value=="")
{
document.getElementById('apdiv2').style.display="";
document.getElementById('apdiv1').style.display="none";
document.form1.pass.focus(); return false;
}
return true;
}
</script>
如下是客户页面代码:
<form action="11.asp" mothod="post" name="form1" id="form1" onsubmit="return goform1();">
<input type="text" name="names" id="names" value="">
<br>
<div id="apdiv1" style="display:none; width:100px;">ok,names</div>
<br>
<input type="password" name="pass" id="pass" value="">
<br>
<div id="apdiv2" style="display:none; width:100px;">pass,ok</div>
<br>
<input type="submit" id="login" value="login">
</form>
给你提个建议:建议你在写代码的时候还是尽量做到规范,分号不要省,格式要有规律的缩进,这样会对你有好处的。
祝你学习愉快!本回答被提问者采纳
第2个回答  2010-03-21
改成这样:

function goform1(){
if (document.form1.names.value="")
{document.getElementById('apdiv1').style.display=""
document.getElementById('apdiv2').style.display="none";
document.form1.names.focus();
return false;
}
else if (document.form1.pass.value="")
{document.getElementById('apdiv2').style.display=""
document.getElementById('apdiv1').style.display="none";
document.form1.pass.focus(); return false;}
else return true;
}

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网