我正在尝试将表单提交转换为jQuery的Ajax。该页面包含一个表格 - 每一行都有一个带有复选框的表单,其中onchanged属性提交表单:
<input type="checkbox" value="" onchange="this.form.submit();"/>
由于我想通过jQuery的Ajax处理程序汇集任何表单,我使用的模式我已经看到了很多使用的例子:
$("form").live('submit', function (event) {
alert("hit ajax");
event.preventDefault();
var form = $(this);
$.ajax({
url: form.attr('action'),
type: "POST",
data: form.serialize(),
success: function (data) {
$("#myContainer").html(data);
},
});
});
但是,上面的代码块永远不会执行 - 表单以与以前相同的方式提交。 Firebug不报告任何错误 - 页面上的其他jQuery函数正在运行。
THX
答案 0 :(得分:1)
也将事件监听器放在JQuery中:
HTML:
<input type="checkbox" id="myCheckbox" />
JQuery:
$('#myCheckbox').change(function(){
$('#myForm').submit();
});
此外,在您的示例中,IE将不会使用该尾随逗号:
success: function (data) {
$("#myContainer").html(data);
}, // <-- This guy
答案 1 :(得分:0)
改为使用:
$("form input:checkbox").live('click', function (event) {
(覆盖页面上所有复选框的点击处理程序)并将其添加到原始代码块的底部:
this.form.submit();