私は以下のコードを持っています - ユーザーがドロップされたデフォルトオプションだけをクリックしたときにドロップダウンをロードするために使用されます。このドロップダウンはかなり大きく、IEは 'そんなに好きではない。ここでは、コードは次のようになります。IE 6 Javascriptの選択ドロップダウンの問題
function populateDropDown(id, code) {
var currentSelect = document.getElementById(id);
<%--Don't enable the dropdown if it has more than one entry already - assume this to be populated.--%>
if(currentSelect.length == 1) {
currentSelect.remove(0);
var selectedIndex = 0;
for(var index = 0; index < codes.length; index++) {
var newOption = document.createElement('option');
newOption.value = codes[index];
newOption.text = values[index];
try {
currentSelect.add(newOption, null); // standards compliant
}
catch(ex)
{
currentSelect.add(newOption); // IE only
}
if(codes[index] == code) {
selectedIndex = index;
}
}
currentSelect.selectedIndex = selectedIndex;
}
}
このコードは、オペラ9.xの、IE 7で動作します - ではなく、私はオペラトンボが好きなので、IE 6は、(私はOperaでテストする - しかし、それは本当に唯一のIE 7で動作するように持っていると6)。
IE 6では、コードはドロップダウンに値を設定しますが、選択した値をドロップダウンリストの最初の値に設定します。選択した値は、他の2つのブラウザーで適切な値に設定されます。
私はJavascriptの専門家ではありません。誰かがIE 6でこれをやっている理由とそれを回避する方法を知っていれば、それは感謝します。 コメントにはJSPコメントがあります.Javascriptがブラウザに送信される前に削除されます(無効なコメントではありません)。
if(code [index] == code)はどこから来ますか? –
申し訳ありません、Russさん、署名を追加するのを忘れてしまいました。署名はfunctionName(id、code)です。コードは、JSP EL関数を介して、最初に選択された値から来ています(なぜ、このチェックは、すでに入力されているドロップダウンには挿入されません - そのドロップダウンに2つ以上のオプションがない場合、 !) – MetroidFan2002
署名を追加するために編集します。 – MetroidFan2002