Rails 3 - запрос Bind Pre-AJAX - PullRequest
       1

Rails 3 - запрос Bind Pre-AJAX

1 голос
/ 12 января 2011

В настоящее время я пытаюсь использовать button_to для запуска обновления записи.Поскольку запрос AJAX занимает некоторое время, я собираюсь смоделировать эффекты запроса в пользовательском интерфейсе, обновив интерфейс до отправки запроса.После этого поста , который выполняет нечто подобное для link_to.

На мой взгляд, у меня есть:

button_to "Submit", my_class_path, :remote => true, :class => "my_class", :method => :get

В application.js у меня есть следующее:

jQuery(function($) { 
  $("input.my_class").bind("ajax:loading",  function(){
    alert("Hello World!");
  });
});

Событие либо не запущено, либо я не связываюсь с ним правильно.Как мне обработать предварительный AJAX-запрос от button_to?

И, кроме того, есть ли хороший способ видеть события javascript по мере их запуска?

1 Ответ

2 голосов
/ 12 января 2011

Проблема может заключаться в том, что button_to создает что-то вроде этого:

<form method="post" action="/some_action" data-remote="true" class="button_to">
<div>
    <input name="_method" type="hidden" value="delete">
    <input class="my_class" type="submit" value="Submit">
    <input name="authenticity_token" type="hidden" value="asdfasdfasdfsafasdfasdfas=">
</div>
</form>

Но согласно rails.js , похоже, что запрос ajax привязан к содержащемуform:

$('form[data-remote]').live('submit', function (e) {
    $(this).callRemote();
    e.preventDefault();
});

Таким образом, по сути, кнопка ввода отправляет только форму, которую код rails.js захватывает и использует для выполнения вызова ajax.Это, вероятно, означает, что вам нужно привязать непосредственно к форме кнопки.Примерно так:

$("input.my_class").parents('form[data-remote]').bind("ajax:loading",  function(){
    alert("Hello World!");
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...