2011-07-26 34 views
0

私はRuby On Rails 2.3.8アプリケーションを開発しています。ユーザーがテキストエリア内でEnterキーを押すと、remote_form_forを送信する方法を知りたいと思います。 フォームが送信されると、私はすでにコントローラのアクションからhtmlを置き換えています。ここでRailsのtextareaからEnterキーでAJAXフォームを送信するには?

は私のコードです:ここでは

jQuery('.new-reply-text').keypress(function(e) { 
    if (e.keyCode == 13 && !e.shiftKey) { 
     e.preventDefault(); 
     jQuery.ajax({ 
      url: this.form.onsubmit(), 
      data: this.form.serialize(), 
      success: {}, 
      dataType: json 
     }); 
    } 
}); 

は、フォームのコードです:

<% remote_form_for :post, PostComment.new, :url => save_outside_comment_path(post_id), :html => {:method => :put, :onsubmit => save_outside_comment_path(post_id)} do |f| %> 
     <%= f.text_area :comment, :rows => 1, :id => "txtOutsideComment_#{post_id}", :class => "new-reply-text" %> 
     <%#= f.submit 'Publish', :onClick => "javascript:return validateField(this, #{PostComment::OUTSIDE_COMMENT_MIN_LENGTH}, #{PostComment::OUTSIDE_COMMENT_MAX_LENGTH});" %> 
<% end %> 

私を助けてください! ありがとう読書ありがとう

+0

を試してみてください? – dschooh

答えて

2

あなたのコードでは、これはテキストボックスを指しているので機能しません。あなたは1行text_areaを使用して、効果的に改行を禁止、text_fieldがより適切ではないでしょうしているので、この

jQuery('.new-reply-text').keypress(function(e) { 
    if (e.keyCode == 13 && !e.shiftKey) { 
     e.preventDefault(); 
     var frm = $(this).closest("form"); 
     jQuery.ajax({ 
      url: frm.attr("action"), 
      data: frm.serialize(), 
      success: {}, 
      dataType: json 
     }); 
    } 
}); 
+0

大変ありがとうございますが、それでも動作しません。 "$(form).getElementsByTagNameは関数ではありません"とIE: "オブジェクトはプロパティまたはメソッドをサポートしていません。 – brianfalah

+0

私の答えに二重引用符がありませんでした。私は今それを編集してみてください。 – ShankarSangoli

関連する問題