Rails - 通过Enter(ajax)发送聊天消息

时间:2010-09-20 20:37:40

标签: javascript jquery ruby-on-rails ajax

以下是聊天提交表单:

  #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")

聊天#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!”按钮很好,但我需要通过“Enter”按钮发送消息。

怎么做?

(我正在使用jQuery)

1 个答案:

答案 0 :(得分:1)

您可以将处理程序附加到将捕获输入的文本区域元素,可能是这样的:

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

但是人们不能在文本区域添加换行符,这非常直观。对于单行输入,您可能需要一个常规文本字段(input元素),当用户按下回车键时,它将触发提交表单。