2017-06-06 5 views
-1

私は独立したドロップダウン(項目)から選択した値に依存する依存ドロップダウン(cat)を持つフォームを持っています。私はコピー貼り付けのコードを避けたいので、私は独立したパートナーに基づいて複数のドロップダウンを処理できる機能を探しています。明示的に従属要素を呼びたくない場合、またはコピー貼り付きのコードが発生します。複数の従属要素を設定する(JavaScript)

これで、要素同士を結合するか、要素同士を結びつけることができますか?

例:
ITEM1 - > CAT1
ITEM2 - > CAT2
ITEM3 - > CAT3

+0

私が使用する値は、ドロップダウンから一意ではありません。 item1はitem2と同じオプションを持ちます。しかし、item1はcat1のみに影響する必要があります.cat2ではなく、item2はcat2などに影響する必要があります。 これは私が解決しようとしている問題です。影響を受ける要素にのみ影響するようにそれらの要素をリンクしようとしています –

答えて

0
var roleByCategory = { 
     A: ["Soup", "Juice", "Tea", "Others"], 
     B: ["Soup", "Juice", "Water", "Others"], 
     C: ["Soup", "Juice", "Coffee", "Tea", "Others"] 
    } 

    $("form").on("change", ".indi_ele", changeCat); 
    $(".indi_ele select").change(); 


    function changeCat(event) { //should handle everything 
     var indie = $(event.target); 
     var depends = indie.closest('select').find('.gfield_select'); //dependent dropdown 
     var type = indie.val(); // this equals A, B, or C 

     var catOptions = ""; 
     for (categoryId = 0; categoryId < roleByCategory[type].length; categoryId++) { 
      catOptions += "<option>" + roleByCategory[type][categoryId] + "</option>"; 
     } 
      depends.html(catOptions); 
    } 

最初のドロップダウンの要素に特定の値を与え、2番目のドロップダウンの要素を移入事前に(あなたが望むならあなたはそれをユーザーから隠すかもしれません)。最初のドロップダウンの変更時にfilter()メソッドを使用して2番目のドロップダウンをフィルタリングします。

+0

私が使用する値は、ドロップダウンに固有のものではありません。 item1はitem2と同じオプションを持ちます。しかし、item1はcat1のみに影響する必要があります.cat2ではなく、item2はcat2などに影響する必要があります。 これは私が解決しようとしている問題です。影響を受けると思われる要素にのみ影響するように、それらの要素をリンクしようとする –

関連する問題