1

2 のフォームがあり<select>、 select1 は単純な選択を許可し、 select 2 は複数の選択を許可します。私が欲しいのは、ユーザーがselect1で何かを選択すると、select2の関連データがデータの配列に従って選択されることです。

function selectIt() {
 var divArray = new Array();
 // this is the value for first element on select1
 divArray[0] = 3;
 // these are the corresponding values on select2 that should be selected
 divArray[0] = new Array();
 divArray[0][0] = 5;
 divArray[0][1] = 1;
 divArray[0][2] = 2;
 // and so on
 divArray[1] = 2;
 divArray[1] = new Array();
 divArray[1][0] = 6;
 divArray[1][1] = 3;
 divArray[1][2] = 2;

   var select2  = document.getElementById("secondSelect");
   for (var i=0; i < select2.options.length; i++)
      select2.options[i].selected = false;
}

したがって、ユーザーがインデックス 1 を選択した場合、select2 で項目 2、3、および 6 を選択する必要があります。

まず、次を使用して、以前に選択したアイテムの選択を解除します。

var select2 = document.getElementById("secondSelect");
for (var i=0; i < select2.options.length; i++)
    select2.options[i].selected = false;

その後、私は何をすべきかわかりません。

some loop here
   select2.options[i].selected = true;

どんな助けでも大歓迎です!!!!

4

2 に答える 2

1

次の方法で配列を宣言できます。

divArray[0] = [5, 1, 2];

テストせずに書いて答えようとするだけなので、エラーが発生する可能性があることを念頭に置いてください。

document.getElementById("firstSelect").onchange = function() {
    var optionIndex = this.selectedIndex; // in this function 'this' is select element
    var optionsToSelect = divArray[optionIndex];
    var select2 = document.getElementById("secondSelect");
    for (var i = 0; i < optionsToSelect.length; i++){
       select2.options[optionsToSelect[i]].selected = true; 
    }
};
于 2013-10-16T18:56:45.887 に答える