Имитация отправки формы с помощью AJAX на keyDown? - PullRequest
0 голосов
/ 05 декабря 2011

В настоящее время у меня есть удаленная форма, состоящая из текстовой области и кнопки отправки.Если я наберу текст и нажму «отправить», модель будет успешно создана, и format.js будет вызван правильно, в результате чего текст исчезнет выше.

Однако я хочу иметь возможность отправить форму, нажав клавишу ввода.Поскольку это текстовая область, это невозможно, если я не добавлю keyUp.Однако после этого я заметил странное поведение.Я попытался позвонить на $('#my_form').submit(), а также $('#my_form > input').click().

Модель успешно создана (как видно из примера, если я перезагружаю страницу, я вижу ее в списке вместе с остальными), но по какой-то странной причине мой контроллер фактически не вызывает format.js.Имейте в виду, что все работает нормально, если я на самом деле нажимаю кнопку отправки, но не тогда, когда я вызываю его с помощью keyDown на текстовой области.

Если кто-то знает, почему это происходит, и может предложить решение, я был бы очень признателен, так как это давало мне покои в течение довольно долгого времени.

Ответы [ 2 ]

0 голосов
/ 05 декабря 2011

Fixed. Проблема возникла, потому что он пытался отправить текст с \ r \ n в конце. Если я нажимаю клавишу ввода (и неважно, какие клавиши после нажатия), кнопка «Отправить» сама по себе даже не работает. Чтобы это исправить, я просто отключаю завершающий \ r \ n перед отправкой.

0 голосов
/ 05 декабря 2011

Вы должны просто быть в состоянии сделать это:

$('.some-div-here textarea').live('keydown', function(event) {
  if(event.keyCode == '13') {
    $('#my_form').submit();

    return false;
  }
});

В глазах контроллера Rails не должно быть никакой разницы между ручным нажатием кнопки отправки и jQuery для ее отправки.

Если вы посмотрите в журналах Rails, вы должны увидеть:

Запущен POST "/ some / route" для 127.0.0.1 в 2011-12-04 21:23:51 -0500

Обработка YourController # your_action как JS

Если написано as JS, то по умолчанию должно отображаться format.js.

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