在asp.net mvc3应用程序中有一个表单。表格通过jquery帖子发布。以下是相关代码。
$(this).find('form').live('submit', function () {
var request = $.post($(this).attr('action'), $(this).serialize(), function (data) {
//do something
});
request.fail(function (jqXHR, textStatus) {
//do something
});
return false;
});
使用了live(),因为表单是通过ajax加载的,每次通过ajax检索表单时我都不想绑定click事件。
问题是点击提交原因表单要发布两次。在chrome和IE9中测试过,两者都有。
我检查了页面是否包含任何其他表单,但只有一个表单。
我禁用了两个浏览器中的所有扩展程序(firebug可能会导致这种情况)
页面上没有任何资源导致404(即图片)。
那么还有什么可能导致这个问题?
答案 0 :(得分:1)
我怀疑你正在打赌表格,或两次提交按钮。有bookmarklet称为视觉事件(不是我的)。检查是否是这种情况。正如卡兹所说,没有实际的HTML,可以做的不多。
答案 1 :(得分:0)
没有html标记很难说,也许你有两个嵌套表单?
尝试使用event.stopPropagation或preventDefault:
$(this).find('form').live('submit', function (e) {
e.stopPropagation();
e.preventDefault();
var request = $.post($(this).attr('action'), $(this).serialize(), function (data) {
});
request.fail(function (jqXHR, textStatus) {
//do something
});
return false;
});
答案 2 :(得分:0)
这就是为我做的。我有一个Ajax表单,我唯一需要工作的是:
$('#docForm').ajaxForm({
...Do Some Mildly Cool Stuff Code...
}).submit(function (e) {
return false;
}); //Just add the submit to the end.
这就是全部。
希望它有所帮助!