2011-08-11 2 views
2

Internet Explorer(6と7)のHTML WebサイトでSELECT値にアクセスする簡単で短期間のソリューションを探しています。Internet Explorer 6でのSELECTの値へのアクセス

HTML

<select id="s1"> 
    <option>Option1</option> 
</select> 

JS:

document.getElementById("s1").options[document.getElementById("s1").selectedIndex].value 

上記のコードは動作しません。私は空の文字列を取得します。

私はone solutionを見つけた - 私はすべてのオプションは次のように見えるようにする必要があります:

<option value="Option1">Option1</option> 

に動作することが、私のウェブサイトのフォームのほとんどcosist、そのような操作は、50から70パーセントで、そのサイズを大きくします。

他の方法は知っていますか?

PS。私は "価値"の代わりに "テキスト"を使うべきであることを読んだが、それについてはわからない。私はこれを行うことの結果が何かを見つけることができませんでした。

答えて

2

使用、

document.getElementById("s1").options[document.getElementById("s1").selectedIndex].innerHTML; 
+0

".text"を使用するよりも優れていますか? diffrenceとは何ですか? – Lis

+0

optionタグの内容にHTMLが含まれていない限り、大きな違いはありません。この場合、innerHTMLは内容全体(HTMLとすべて)を取得します。 –

+0

+1。 IE6で動作するのは、.innerHTMLだけです。私は私の答えを削除しました。 –

2

これはあなたのオプションでvalue属性がないためです。

<select id="s1"> 
    <option value="Option1">Option1</option> 
</select> 

をこれはあなたに正しい値をバック与えるだろう。

新しいブラウザでは、欠損値属性の代わりにoption textが送信されます。

何を使用するかに関しては、適切な意味の方法はvalue属性を使用することです。表示テキストが値と異なる場合はどうなりますか?もう一度デザインを変更しますか?

ページサイズが問題になる場合は、セマンティクスを破る代わりにwhitespaceまたはgzipping contentを削除してみてください。一部の古いIE6のバージョン(SP3のIE6はうまくいきます)がGZipのコンテンツでうまく動かないことに注意してください。

関連する問題