Как мне заставить мою кнопку отправлять AJAX-форму?

#ruby-on-rails #ajax

#ruby-on-rails #ajax

Вопрос:

 <%= link_to_remote "<span class='button_sprite_star'></span>Save Changes",
    "unsaved_changes = false; $('edit_content').submit();",
    :class=>"save action_button" %>
  

Я использую remote_form_for (форма работает, когда я нажимаю submit_tag в форме).

Причина, по которой я хочу иметь другую кнопку sumbit, заключается в том, как я делаю стиль страницы. Кнопки управления находятся за пределами формы.

Я знаю, что мой описанный выше метод работает для обычных form_for, но когда форма является remote_form_for, я получаю это обратно:

 try {
unsaved_changes = false;
Element.update("content_name_361", "Basic Agressive Pool Theory");
enablePreviewLink();
completeSave();
} catch (e) { alert('RJS error:nn'   e.toString()); alert('unsaved_changes = false;nElement.update("content_name_361", "Basic Agressive Pool Theory");nenablePreviewLink();ncompleteSave();'); throw e }
  

это ответ AJAX… но почему это отправляется на новую страницу вместо страницы, на которой я уже был?

Я использую ruby 1.8.7 и rails 2.3.8

Ответ №1:

Решаемая путем вызова этой функции вместо вызова отправки формы:

 ajax_sumbit = function(e){ // e is a jquery object of the form
    $j.ajax({
      type: "POST",
      url: e.attr("action"),
      data: e.serialize()
    });
  }  
});