Как отправить AJAX-форму с ключом ENTER из textarea в Rails? - PullRequest
0 голосов
/ 26 июля 2011

Я занимаюсь разработкой приложения на Ruby On Rails 2.3.8, и я хотел бы знать, как отправить remote_form_for, когда пользователи нажимают клавишу ВВОД в текстовой области. Я уже делаю html замену из действия контроллера, как только форма отправлена.

Вот мой код:

jQuery('.new-reply-text').keypress(function(e) {
    if (e.keyCode == 13 && !e.shiftKey) {
        e.preventDefault();
        jQuery.ajax({
            url: this.form.onsubmit(),
            data: this.form.serialize(),
            success: {},
            dataType: json
        });
    }
});

Вот код формы:

<% remote_form_for :post, PostComment.new, :url => save_outside_comment_path(post_id), :html => {:method => :put, :onsubmit => save_outside_comment_path(post_id)} do |f| %>
      <%= f.text_area :comment, :rows => 1, :id => "txtOutsideComment_#{post_id}", :class => "new-reply-text" %>
      <%#= f.submit 'Publish', :onClick => "javascript:return validateField(this, #{PostComment::OUTSIDE_COMMENT_MIN_LENGTH}, #{PostComment::OUTSIDE_COMMENT_MAX_LENGTH});" %>
<% end %>

Пожалуйста, помогите мне! Спасибо за чтение

1 Ответ

2 голосов
/ 26 июля 2011

В вашем коде это указывает на текстовое поле, поэтому оно не будет работать. Попробуйте это

jQuery('.new-reply-text').keypress(function(e) {
    if (e.keyCode == 13 && !e.shiftKey) {
        e.preventDefault();
        var frm = $(this).closest("form");  
        jQuery.ajax({
            url: frm.attr("action"),
            data: frm.serialize(),
            success: {},
            dataType: json
        });
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...