以下是聊天提交表单:
#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)
答案 0 :(得分:1)
您可以将处理程序附加到将捕获输入的文本区域元素,可能是这样的:
$('#message_content').keypress( function( e ) {
if( e.keyCode == 13 ) { $(this).closest('form').trigger('submit'); }
} );
但是人们不能在文本区域添加换行符,这非常直观。对于单行输入,您可能需要一个常规文本字段(input
元素),当用户按下回车键时,它将触发提交表单。