私は "ダイナミック"カスケードドロップボックスを作成しようとしています。しかし、<select>
フィールドIDを含む配列内のすべての変数に、.change()
リスナーを追加するという問題が発生しています。js Array()のすべての変数に.change()を追加します。
私が使用するのであれば:
fields[0].change(function() {populateFields(1, 0, xml);});
fields[1].change(function() {populateFields(2, 1, xml);});
コードは完璧に動作します。現在のコードでは、3つの分野に限られているので、私は、フィールドの可変数を持つことができるように
for (i=1; i<numberOfFields; i++){
p = i-1; current = i;
fields[p].change(function() {populateFields(current, p, xml);});
}
:しかし、私はこのようなものを使用することを好むだろう。 forループは現在動作していますが、2番目のフィールドが入力されても機能しません。
ご協力いただければ幸いです。
注:これは変数や変数を関数に渡すのではなく、イベントリスナーを配列に追加することについての質問です。印がついた答えが正解でした。
を1のループは、0インデックスが異なるプログラミングを持ち、他の場所で処理されるためです。これはfields [1] = model、fields [2] = year – Blaise
の場合はインデックス1と2のためだけですか? – hackerrdave
i = 1で始めると 'if'条件は決してヒットせず、そのためには必要ありません – hackerrdave