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

原代码是这样的:

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,你还得捕获回车事件。

个人意见,欢迎拍砖!!

你可能感兴趣的:(submit)