JQuery Rails 3: невозможно выполнить JS с простой формой - PullRequest
0 голосов
/ 24 января 2011

Новое с JavaScript и Rails.Я получил несколько простых jQuery для работы с моим приложением rails, когда оно не является формой.

Теперь я пытаюсь выполнять действия jQuery, когда пользователь нажимает кнопку «Отправить» в форме.У меня проблема в том, что HTML-код выполняется вместо сценариев.Кстати: использовали леса для создания простой формы.Это действие CREATE submit, которое я хочу получить.


application.js:

jQuery.ajaxSetup({
  'beforeSend': function(xhr) {
    xhr.setRequestHeader("Accept", "text/javascript")
  }
})

$(document).ready(function() {

  $("#new_travel").submit(function() {
    $.post(this.action, $(this).serialize(), null, "script");
    return false;
  });

create.js.erb:

alert('Yeah!');  // Have more, but just want to see the jQuery to be executed

new.html.erb:

<%= form_for(@travel, :remote => true) do |f| %>
..
..
  <div class="actions">
    <%= f.submit %>

Контроллер путешествий хранит файл format.js в блоке response_to

Есть какие-нибудь подсказки относительно того, что не так?Дайте мне знать, если какая-либо информация отсутствует.

Спасибо!

1 Ответ

0 голосов
/ 24 января 2011

РЕШЕНО!

Я обнаружил, что он действительно работает для стандартных форм, но поскольку форма, над которой я работал, была показана на другой странице как часть другого вызова Jquery, то $ ("# new_travel")не обнаружить его.

Мне пришлось изменить это значение на: $ ("# new_travel"). live (функция 'submit') () ...

И тогда все заработало #new_travel на странице получил javascript 'hook'.

...