JQuery: как исправить этот синтаксис для живой привязки - PullRequest
0 голосов
/ 30 октября 2010

Я не могу понять это правильно.

У меня есть форма, приходящая через XHR. Мне нужно иметь возможность прикрепить обработчик отправки к нему, как только он войдет через XHR, отсюда и .live () здесь. Приведенный ниже код на самом деле работает, проблема в том, что происходит HTTP POST XHR (что хорошо), а затем происходит загрузка HTTP POST всей страницы, а это не хорошо. Возвращение ложное; кажется, ничего не делает. Мой бэкэнд - Rails, но это мало что значит в этом контексте. Что я делаю не так в этом блоке кода, который заставляет HTTP POST выполняться один раз для XHR и один раз для полной загрузки страницы? Лучший способ обойти это?

$('form[name=clip_form2]').live('submit', function() {
  $.post($(this).attr("action"), $(this).serialize(), null, "script");
  return false;
});

Моя форма Rails даже имеет onsubmit = "return false;" Обработчик:

  <% form_for(@clip, :url=>group_channel_clip_path(@clip.group_channel,@clip), :method=>:put, :html => {:multipart => true, :name=>'clip_form2', :onsubmit => "return false;"}) do |f| -%>

1 Ответ

0 голосов
/ 30 октября 2010
$(document).ready(function(){
    $('form[name=clip_form2]').submit(function(e){
        e.preventDefault();
        $.post($(this.attr('action')), $(this).serialize(), null, 'script');
    });
});

Также это действительно простое в использовании расширение jquery, которое делает это с добавленными функциями http://jquery.malsup.com/form/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...