日期:2014-05-16  浏览次数:20755 次

form的onsubmit事件中通过ajax提交表单弹出下载的问题

今天在弄一个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,阻止表单提交

}