dwz ajax表单return false不能阻止表单提交

小石头哥 发布于 2012/08/24 13:36
阅读 2K+
收藏 0
DWZ
用dwz的ajax表单的时候加上onsubmit="return validateCallbacks(this, navTabAjaxDone);"就可调用/**
 * 普通ajax表单提交
 * @param {Object} form
 * @param {Object} callback
 */
function validateCallback(form, callback) {
var $form = $(form);
if (!$form.valid()) {
return false;
}

$.ajax({
type: form.method || 'POST',
url:$form.attr("action"),
data:$form.serializeArray(),
dataType:"json",
cache: false,
success: callback || DWZ.ajaxDone,
error: DWZ.ajaxError
});
return false;
}但是我跟踪以后发现ajax提交了一遍,表单提交了一遍。所以就出现了访问后台的时候再IE下会弹出下载后台action的对话框,在这ajax设置为同步提交也是同样没用也就是说最后那个return false 是没用的。阻止不了表单提交。
加载中
0
sxgkwei
sxgkwei

引用来自“liushifa”的答案

引用来自“sxgkwei”的答案

首先,你将代码分离,既然用来表单<form>标签,就别用ajax,2选1即可。同时如果在IE里面的话,用ajax提交,最好将方法放在setTimeout函数内。

 

setTimeout  放在这里什么意思。
我说错了,如果直接$form.submit()时才需要放在setTimeout内,ajax不需要的。不过你先把你的提交方式选定了再说接下来的,总之,form和ajax ,2选1
0
sxgkwei
sxgkwei

首先,你将代码分离,既然用来表单<form>标签,就别用ajax,2选1即可。同时如果在IE里面的话,用ajax提交,最好将方法放在setTimeout函数内。

 

0
小石头哥
小石头哥

引用来自“sxgkwei”的答案

首先,你将代码分离,既然用来表单<form>标签,就别用ajax,2选1即可。同时如果在IE里面的话,用ajax提交,最好将方法放在setTimeout函数内。

 

setTimeout  放在这里什么意思。
返回顶部
顶部