我有下面的代碼 - 它是用來當用戶點擊下拉只加載默認選項加載一個下拉,因爲這個下拉是相當大的,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;
}
}
此代碼的工作在Opera 9.x中,IE 7 - 但不是IE 6(我測試在Opera,因爲我喜歡Opera蜻蜓 - 但它真的只在IE 7的工作和6)。
在IE 6,將碼確實填充下拉,但它設置所選的值,以在下拉列表,而不是所選擇的值的第一個值。在所提及的另外兩個瀏覽器中,所選值被設置爲適當的值。
我沒有使用Javascript大師以任何方式 - 所以,如果有人知道爲什麼IE 6是這樣做的,怎麼去解決它,那會被讚賞。 另請注意,該評論有一個JSP註釋 - 在將此Javascript發送到瀏覽器之前將其刪除(這不是無效註釋)。
來自哪裏的,如果(代碼[指數] ==代碼)代碼? – 2009-08-26 22:14:11
對不起,Russ,忘了添加簽名。簽名是functionName(id,code)。代碼來自最初選定的值,通過JSP EL函數(因此爲什麼檢查不填充已經填充的下拉列表 - 如果該下拉列表中沒有兩個以上的選項,則存在*更大的*問題需要擔心!) – MetroidFan2002 2009-08-26 23:47:16
編輯添加簽名。 – MetroidFan2002 2009-08-26 23:52:07