2010-09-20 3 views
0

Voici le chat soumettre le formulaire:Rails - Envoyer un message de chat Enter (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") 

chat # new.js.rjs

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

contrôleur Causeries:

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!" le bouton est sympa, mais j'ai besoin d'envoyer un message par "Enter".

Comment cela peut-il être fait?

(j'utilise jQuery)

Répondre

1

Vous pouvez attacher un gestionnaire à l'élément de zone de texte qui va attraper entrer, peut-être comme ceci:

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

Mais les gens ne peuvent pas mettre les nouvelles lignes en la zone de texte qui est plutôt contre-intuitive. Pour les entrées à ligne unique, vous voulez probablement un champ de texte normal (élément input) qui déclenchera l'envoi du formulaire dans lequel il se trouve lorsque l'utilisateur appuie sur Entrée.