ajax ссылка внутри формы ajax вызывает отправку формы без причины 3 - PullRequest
0 голосов
/ 18 мая 2011

У меня есть форма следующей структуры

ROR код "

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

код запроса

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

теперь, когда я нажимаю "одна ссылка", "бла-бла", вещь выполняется. Почему это так ? в основном, только когда я нажимаю «отправить», «бла-бла» должен выполняться.

Я сделал что-то не так?


Моя идея: Форма содержит несколько элементов. и перед отправкой формы мне нужно сделать несколько вещей, поэтому я использую ajax: перед отправкой для remote_form. Теперь у меня также есть ссылка, которая является ajax-запросом, полностью независимым от формы Очевидно, что одна ссылка не должна вызывать исполнение "бла-бла" ..

Ответы [ 2 ]

1 голос
/ 18 мая 2011

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.

0 голосов
/ 18 мая 2011

Я не уверен, что понял.Ваша проблема в том, что обратный вызов сработал, хотя форма не была отправлена?

Вы пробовали использовать классическую функцию $ .ajax ():

$('.remote_form').submit(function(){
    $.ajax({
        beforeSend: function(){
            // do something
        }
    });
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...