表格不会用ajax提交,但通常会

时间:2015-09-23 11:17:20

标签: javascript jquery ajax

请考虑以下代码:

stopMonitoring()

但是,这不会提交我的表格:

$('.saveCheck').on('click',function()
   {
        var frm = $(this).parents('form');
        frm.submit(function (ev)
        {   
            $.ajax
                ({
                    type: frm.attr('method'),
                    url: frm.attr('action'),
                    data: frm.serialize(),
                    success: function (data)
                    {alert("hooray!");}
            });
            ev.preventDefault();
        });  
   });

它自己的工作很好,但没有任何AJAX的优点。

这有什么明显的原因吗?

1 个答案:

答案 0 :(得分:3)

您设置了代码,以便在单击saveCheck时它将绑定一个提交处理程序,以便在以后提交表单时,它将调用Ajax函数。

听起来你想要做的就是在点击saveCheck时运行Ajax函数。完全摆脱你的提交处理程序绑定。

$('.saveCheck').on('click', function(ev) {
    var frm = $(this).parents('form');
    $.ajax({
        type: frm.attr('method'),
        url: frm.attr('action'),
        data: frm.serialize(),
        success: function(data) {
            alert("hooray!");
        }
    });
    ev.preventDefault();
});

那就是说,你应该可能在表单上使用提交处理程序而不是按钮上的点击处理程序。