参考插件: http://malsup.com/jquery/form/#getting-started
我最近尝试从旧的v2.28升级到v2.96但是因为在尝试使用FireFox提交已使用其他Ajax调用加载的表单时似乎引入了新的错误。
我有两种形式:我在没有Ajax调用时加载的表单和从服务器加载的其他表单。我使用ajaxForm()进行绑定:
function bindAjaxResponse() {
// Bind for Ajax POST
var options = {
delegation: true,
//target: '#output1', // target element(s) to be updated with server response
beforeSubmit: showRequest, // pre-submit callback
success: showResponse // post-submit callback
};
$('#my_form').ajaxForm(options);
}
在Chrome和IE中,代码运行良好,并且调用showRequest和showResponse并填充适当的参数。使用最新的FireFox(v10.0.2)时,只调用showRequest,但从不调用showResponse。 FireBug清楚地表明根本没有提交。控制台窗口中没有错误消息或警告。我真的不知道什么会引发这种行为上的差异。
请注意,所有这些代码都适用于旧版本v2.28中的所有浏览器
任何?
https://forum.jquery.com/topic/jquery-form-plugin-not-responding-well-with-firefox
上交叉发布的问题由于
答案 0 :(得分:6)
我也遇到了jQuery表单的问题,所以我直接调用$ .ajax:
function bindAjaxResponse() {
// Bind for Ajax POST
$('#my_form').submit( function() {
var datastream = $(this).serialize();
console.log('Submitting form');
$.ajax({
type: 'post',
url: $(this).form.attr('action'),
data: datastream,
timeout: 2000,
error: function() {
console.log("Failed to submit");
},
success: function(data) {
console.log('Successfully submitted form');
console.log(data);
}
});
return false;
});
}
答案 1 :(得分:4)
似乎v2.96中存在一个错误,现在我升级到v3.02就解决了。