今天在弄一个ajax提交表单的功能,发现在form上写了onsubmit属性,指向的js方法中用jquery的$.ajax()方法提交表单。
问题:发现总是弹出提示下载。在火狐中调试的时候发现提交了两次。
分析:如果在onsubmit中不return false的话,onsubmit不会阻止表单提交事件,所以表单正常提交了一次,我又通过ajax方法提交了一次,导致问题的出现。
解决:在form的onsubmit属性对应的js方法前面加上return,然后在js方法里return false;就可以阻止默认的表单提交事件了。
例子:
<form method="post" action="xxx.do"?onsubmit="return subForm(this);">
</form>
function subForm(){
??? $.ajax(...);
??? return false;//返回false,阻止表单提交
}