2017-06-30 1 views
1

RailsのJavascriptとJqueryを初めて使用しています。私は今、この問題について一日中立ち往生しています。 私は、「場所から」、「場所から」、および「数量」という3つのフィールドをフォームに持っています。 「場所から」選択フィールドが変更された場合、私はのために希望:js.erbファイル内のすべての選択フィールドにjquery。change()が当てられます。ruby on rails

  • 「の場所に、」へ
  • 「の場所から」「数量」で選択したフィールドを削除するように変更します利用可能な数量を「所在地」に反映させます。

私はこれを自分のアイテムモデルのedit.js.erbファイルに書いています。

私はすべてのフィールドに異なるクラスを与え、クラスごとに特定のフィールドを参照していますが、すべての選択フィールドで.on change()が発生しています。

(。変数fohInventoryItemsがこのモデルのインデックスページにスクリプトブロックを介して提供される) は、ここに私のコードです:

var selectedItemClass = <%[email protected]%> 
 

 

 
(document).on('change', $('select.' + selectedItemClass + "." + 'from-select').eq(0), function() { 
 

 
    });

そして彼女は_form.html.erbで私のコードです

<%= form_for item, remote: true, format: "js" do |f| %> 

     <%= f.label :from_location %><br> 
     <%= f.collection_select :location_ids, item.locations.uniq, :id, :name, {selected: item.locations.uniq.first}, { class: "form-control #{item.id} from-select", } %><br> 

    <%= fields_for :line_items, item.line_items.build do |l| %> 

     <%= l.label :to_location %><br> 
     <%= l.collection_select :location, Location.all, :id, :name, {}, { class: "form-control #{item.id} to-select" } %><br> 


     <%= f.label :quantity %><br> 
     <%= f.select :quantity, (Array (1..item.quantity)), {}, { class: "form-control #{item.id}" } %> 

    <%end%> 
    <br> 
    <div style="text-align: center;"> 
     <%= f.submit "Move", class: "#{item.id} submit" %><br> 
    </div> 
<% end %> 

答えて

0

委任イベント漢としてon()を使用して:このモデルのためにdler、2番目の引数は内部的にフィルタとして使用され、要素がセレクタと一致するかどうかがチェックされます。

ドキュメントが明確seleector

セレクタ
タイプされた状態での構文は

.on(events [, selector ] , handler) 

であると述べ: の子孫をフィルタリングする文字列

セレクタ列ハンドルを呼び出す選択された要素r。セレクタが がヌルまたは省略されている場合、ハンドラは、選択された要素の に達すると常に呼び出されます。

理由は文字列であるため、要素がチェックされるため、別のjQueryコレクションにすることはできません。あなたは、おかげでたくさん働い

$(document).on('change', '.' + selectedItemClass + 'from-select', function() {... 
+0

にコードを変更する必要が意味

...! –

関連する問題