JQuery с Rails - не выполняет функцию внутри отправки - PullRequest
0 голосов
/ 06 января 2012

Я использую .submit() метод для отправки данных.

У меня есть форма вопроса с альтернативами, когда я нажимаю на нее, она автоматически обновляется в БД, используя это:

application.js

function save_response_with_ajax(t){
    $('#edit_response_set_' + t).submit();
  }

и переключатель:

<%= rs_a_form.input :answer_id,
            :collection => "code that gets the info",
            :as => :radio, 
            :input_html => {
     :onclick => 'save_response_with_ajax(' + response_set.id.to_s + ');'} %>

Все работает нормально, но когда я много раз нажимаю эту радиокнопку, форма отображается снова, поэтому я искал, как избежать нескольких запросов ajax (только один, даже если я нажимаю много раз), и мне приходится использовать метод $ .ajax (). Проблема в том, когда я пишу:

function save_response_with_ajax(t){
  $("#form").submit(function(){
       //it suppose to be $.ajax(url, .....) instead of alert
       // I'm just testing 
       alert("hi");
  });
}

ничего не происходит.

Надеюсь, кто-нибудь может мне помочь

1 Ответ

0 голосов
/ 07 января 2012

Чтобы избежать нескольких отправок, вы можете использовать глобальные обработчики событий ajax для запуска функций, когда запросы AJAX начинаются и заканчиваются и т. Д.

 $(document).ajaxStart(function(){
   //add js to disable your inputs so you can not trigger the submit again.
  })
  .ajaxStop(function(){
   //add js to re-enable your inputs that you disabled in ajaxStart
  })
  .ajaxError(function(){
   //add js here to alert user that a problem occurred.
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...