Rails - отправьте сообщение чата с помощью Enter (ajax) - PullRequest
0 голосов
/ 21 сентября 2010

Вот форма отправки в чат:

  #chat_form
    - remote_form_for :chat, :url=>{:controller => "chats", :action=> "new", :id=>@request.id }, :html => { :autocomplete => 'off' } do |f|
      = f.text_area "message_content", :rows=>5, :cols=>55, :autocomplete => "off"
      = f.submit(value = "Sayit!", :class => "submit small")

chat # new.js.rjs

page << "$('#chat_message_content').val('')"
page.visual_effect :highlight, "chat_form"

Контроллер чатов:

  def new
    @request = Request.find(params[:id])
    @chat = Chat.new(params[:chat])
    @chat.created_at = Time.now
    @chat.user_id = current_user.id
    @request.chats <<@chat
    render :layout => false
  end

"Sayit!"Кнопка хороша, но мне нужно отправить сообщение кнопкой «Ввод».

Как это можно сделать?

(я использую jQuery)

1 Ответ

1 голос
/ 21 сентября 2010

Вы можете прикрепить обработчик к элементу текстовой области, который будет ловить ввод, может быть, например, так:

$('#message_content').keypress( function( e ) {
  if( e.keyCode == 13 ) { $(this).closest('form').trigger('submit'); }
} );

Но тогда люди не могут помещать новые строки в текстовую область, что довольно нелогично.Для однострочных вводов вам, вероятно, понадобится обычное текстовое поле (элемент input), которое будет вызывать отправку формы, в которой он находится, когда пользователь нажимает клавишу ввода.

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