【问题标题】:Rails — send chat message by Enter (ajax)Rails — 通过 Enter (ajax) 发送聊天消息
【发布时间】:2010-09-21 04:41:16
【问题描述】:

这里是聊天提交表单:

  #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

“说吧!”按钮很好,但我需要通过“Enter”按钮发送消息。

如何做到这一点?

(我正在使用 jQuery)

【问题讨论】:

    标签: javascript jquery ruby-on-rails ajax


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-12-29
      • 2013-11-04
      • 1970-01-01
      • 2016-04-04
      • 1970-01-01
      • 2021-04-14
      • 2016-04-13
      相关资源
      最近更新 更多