3

Can an Option in a Select タグは複数の値を運ぶことができますか?と同様の質問 - JavaScript で値を参照したい場合を除いて

要約する
と、選択ボックスで選択したアイテムに対して複数の値を返したいので、次のように考えていました。

<SELECT id='selectList'>
   <OPTION value1="a" value2="b" value3="c">OPTION 1</OPTION>
   <OPTION value1="d" value2="e" value3="f">OPTION 2</OPTION>
</SELECT>

次に、選択したアイテムの値を取得したい:

var sel = document.getElementById('selectList');
selValue1 = sel.options(sel.selectedIndex).value1;
selValue2 = sel.options(sel.selectedIndex).value2;
selValue3 = sel.options(sel.selectedIndex).value3;

現在、オプションの value='x' を取得できますが、オプションに関連付けるにはさらに値が必要です。おそらく、3 つの値すべてを 1 つに区切り、後で文字列関数を使用してそれらを分割することもできますが、それは厄介なことに思えます。

4

3 に答える 3

0

JS のオブジェクトの配列内にすべての値を配置し、その配列の各位置を SELECT 要素の OPTIONS の値として参照します。

したがって、私の SELECT は次のようになります (値 = 配列のインデックス位置):

<SELECT id='selectList'>
   <OPTION value="0">OPTION 1</OPTION>
   <OPTION value="1">OPTION 2</OPTION>
</SELECT>

配列の例:

var array = [
          { 
            "value1": "a",
            "value2": "b",
            "value3": "c"
          },
          { 
            "value1": "d",
            "value2": "e",
            "value3": "f"
          }
      ];

array[0]
Object {value1: "a", value2: "b", value3: "c"}
array[1]
Object {value1: "d", value2: "e", value3: "f"}

そして、各オブジェクトを取得する方法:

var sel = document.getElementById('selectList');
var selectedValue = sel.options[e.selectedIndex].value;

選択した値が最初のオプションの場合 (値 = 0):

array[selectedValue]
Object {value1: "a", value2: "b", value3: "c"}

array[selectedValue].value1
"a"
array[selectedValue].value2
"b"

選択した値が最初のオプションの場合 (値 = 1):

array[selectedValue].value1 
"d"
array[selectedValue].value2
"e"

等々...

于 2013-05-04T11:54:34.727 に答える