Очистить Rails удаленную форму после отправки - PullRequest
11 голосов
/ 19 мая 2011

Я использую Rails 3 с jQuery и имею простую форму с одним вводом текста и кнопкой отправки. У меня есть форма отправки с :remote => true, и я хотел бы очистить ввод после форма отправлена. Я попробовал этот код JQuery:

$('#new_message').submit(function() {
  $('#message_content').val('');
});

Однако, это очищает ввод до формы, поэтому я в конечном итоге отправляю пустую форму.

Пройдя немного поиск, я также попробовал следующую версию:

$('#new_message').submit(function(e) {
  e.preventDefault();
  this.submit();
  $('#message_content').val('');
});

... но это, кажется, отменяет магию :remote => true, и форма отправляется с полной перезагрузкой страницы. Есть идеи?

Ответы [ 5 ]

21 голосов
/ 19 мая 2011

Когда кнопка отправки нажата для формы, отмеченной remote => true, код javascript в rails.js делает submit(). Вам не нужно переопределять функциональность.

Попробуйте вместо этого в $(document).ready -

(Правка: Использование bind вместо live. Спасибо, Даррен Хикс.)

$("#new_message").bind("ajax:complete", function(event,xhr,status){
  $('#message_content').val('');
}

Это добавляет обработчик события ajax:complete. Это событие вызывается, когда ваша форма ajax-submit заполнена. Подробнее здесь .

1 голос
/ 19 мая 2011

В вашем действии .js.erb file

$('#message_content').attr('value','');

Где action - имя метода (которое вы не указали в своем вопросе) в вашем контроллере

0 голосов
/ 17 февраля 2016

В вашем файле model.js

               $('#element_id').val(' ');

Это работает для меня, вы можете попробовать это.

0 голосов
/ 15 сентября 2012

Вы можете активировать AJAX для Rails следующим образом:

$(this).trigger('submit.rails');
0 голосов
/ 19 мая 2011

В вашей функции jquery отправьте запрос через get () . Вы устанавливаете текстовое поле пустым сразу после вызова get (). Или вы можете сделать это в обратном вызове success, который вы предоставляете get (), который позволит вам получить некоторую информацию от вашего контроллера, например, было ли допустимое значение текстового поля приемлемым.

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