使用jQuery的Ajax处理程序和复选框'onchanged'事件提交的表单

时间:2011-10-10 01:34:52

标签: jquery

我正在尝试将表单提交转换为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

2 个答案:

答案 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();