-2

** edit.js で $("#form > form") を使用し、$("#form") を使用しない理由を専門家が説明できますか??

関連するコードを次に示します:**

コントローラー内部(app/controllers/entries_controller.rb)

def edit
    @entry = Entry.find(params[:id])
    respond_to do |format|
      format.html 
      format.js
    end
  end

フォームに値を設定する app/views/entries/edit.js.erb テンプレート内のコードは次のとおりです。

$("#form > form").replaceWith("<%= escape_javascript(render(:partial => "form"))%>")

インデックスページ(app/views/entries/index.html.erb)

<h2>Entry form</h2>
<div id="form">
  <%= render :partial => "form" %>
</div>

フォーム部分 (app/views/entries/_form.html.erb)

<%= form_for(@entry, :remote => true) do |f| %>
    <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label :address %><br />
    <%= f.text_area :address, :rows => 3 %>
  </div>
  <div class="field">
    <%= f.label :phone %><br />
    <%= f.text_field :phone %>
  </div>
  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>
4

3 に答える 3

0

これには専門家は必要ありません。を持つ DOM の子であるタグを$("#form > form")意味します。formid=form

によって生成されたフォーム<%= form_for(@entry, :remote => true) do |f| %>は、の子です<div id="form">

于 2013-01-24T16:34:14.033 に答える
0

#formセレクターはidofを持つ要素を選択しますform- この場合は<div>要素です。

#form > formセレクターは、要素の直接の子であるフォーム要素を選択しますid。このform場合、<form>要素の直接の<div id="form">要素です。

フォームを含むフォームではなく、フォーム自体を置き換えたいので、要素<div>内にあるフォームを選択します。<div id="form">

于 2013-01-24T16:35:05.110 に答える
0

$("#form")の2行目にあるものと一致<div>しますid=formindex.html.erb

$("#form > form")<form>this 内のタグに一致し<div id=form>ます。内部からパーシャルをレンダリングすると<div><form>実際に検索する場所になります。

于 2013-01-24T16:35:35.867 に答える