0

現在、コメントの作成に AJAX を使用しています。ただし、Enterキーを押すと、テキストフィールドは入力されたままになります。フィールドを更新したい (それでも別のコメントに書き込むことができる)。エラーはありませんが、テキストフィールドが更新されないようです。作成部分は正常に機能します。

create.js/erb: (ここで 2 行目を完全に置き換えるように修正する必要があります)

$('#<%= dom_id(@micropost) %>').html("<%= escape_javascript(render(:partial => @micropost.comments))%>")
$("#comment_field_<%=@micropost.id%>").replaceWith("<%= escape_javascript(render 'shared/comment_form', micropost: @micropost) %>")

マイクロポスト/_マイクロポスト:

<span id="<%= dom_id(micropost) %>"><%= render micropost.comments %></span>
<span id="comment_field_<%=micropost.id%>"><%= render 'shared/comment_form', micropost: micropost if signed_in? %></span>

共有/コメントフォーム:

<%= form_for @comment, id:"comment_form", remote: true do |f| %>
  <%= hidden_field_tag :micropost_id, micropost.id %>
  <div id="comment_field">
    <%= link_to gravatar_for((current_user), size: 29) %>
    <%= f.text_field :content, placeholder: "Say Something...", id: "comment_text_field", :style => "width: 508px; text-indent: 5px" %>
  </div>
<% end %>
4

1 に答える 1

0

空の値を設定して text_field をクリアするには、jquery のみを使用する必要がありました

create.js.erb

$("#comment_text_field_<%=@micropost.id%>").val("")

一意の動的 ID を使用することをお勧めしますが、おそらくどちらの方法でも機能します。

共有/コメントフォーム:

 <%= f.text_field :content, id: "comment_text_field_#{micropost.id}" %>
于 2013-02-27T08:49:29.217 に答える