您的位置:首页 > 其它

[奇怪]一个关于type=submit 和 onsubmit的问题

2010-07-20 11:58 190 查看
原代码是这样的:

 

function doSearch() {
 $("#mainForm").submit();                                      1
 return false;                                                           2        
}
<form onsubmit="doSearch();">                             3
<input type="submit" value="查询"/>                      4

</form>

 

这样提交表单,你觉的表单会提交几次呢?

答案是:两次,

 

如果,3  改为  onsubmit="return doSearch();"  那么表单提交几次呢。 

答案是一次

 

如果   2  改为 return  null,  或者, return  undefined   那么表单提交几次呢

答案是两次

 

也就是说,如果,表单里,有submit按钮,那么单击该按钮,那么该表单,就会查找是否有onsubmit属性,如果存在,就调用该属性  对应的函数,函数返回值,决定onsubmit 属性的是否值,只是,onsubmit的是否,值,onsubmit属性,判断属性是否返回,如果有返回,就是有return,如果,返回是false则,不提交表单,其余的均提交表单。

 

同样,如果你的doSearch函数,不给返回值,该表单页会提交两次!!

 

所以,如果,你要使用button是submit ,那么在form表单,的onsubmit属性里,必须给return,函数,要不,表单则会重复提交。

 

按钮是 submit  可以自动支持enter【回车】事件!!要不,如果你用type=button,你还得捕获回车事件。 

 

 

个人意见,欢迎拍砖!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  button function input null