Ajax 表单中的 Ajax 链接无缘无故调用表单提交 Rails 3



我有以下结构的形式

ROR 代码"

form_tag class='remote_form' remote=>true
{
some fields
1
2
3
one <a> link remote=>true
4
submit button
}

j查询代码

$('.remote_form').live('ajax:beforeSend', function(event, elements){
do some blah blah
}

现在,当我单击"一个链接"时,"等等"事情执行. 为什么会这样?基本上只有当我点击提交时,"等等"必须被执行。

我做错了什么吗?


我的想法 :该表单包含一些元素。在提交表单之前,我需要做一些事情,所以我使用 ajax:在发送之前remote_form .现在我也有一些链接,这是一个完全独立于形式的 ajax 请求。显然,一个链接不应该导致"等等"的执行。

ajax:beforeSend 适用于所有 ajax 调用。这就是执行函数的原因。如果您希望该函数仅在表单提交时执行,请将该函数绑定到表单的提交事件,例如

$('#myForm2').submit(function() { 
        // inside event callbacks 'this' is the DOM element so we first 
        // wrap it in a jQuery object and then invoke ajaxSubmit 
        $(this).ajaxSubmit(options); 
        // !!! Important !!! 
        // always return false to prevent standard browser submit and page navigation 
        return false; 
    });

但是jquery有一个插件可以为你做所有这些事情。我认为你应该看看jquery表单插件,它解释了使用ajax提交表单的所有内容。

我不确定是否理解。您的问题是回调被触发,但表单尚未提交?

您是否尝试过使用经典的 $.ajax() 函数:

$('.remote_form').submit(function(){
    $.ajax({
        beforeSend: function(){
            // do something
        }
    });
});

相关内容

  • 没有找到相关文章

最新更新