#javascript #drop-down-menu #cross-browser
#javascript #выпадающее меню #кроссбраузерный
Вопрос:
Следующий код отлично работает в Firefox, но не в IE или Chrome… Есть идеи, почему?
<script type="text/javascript">
function display_div(show){
document.getElementById('passenger1').style.display = "none";
document.getElementById('passenger2').style.display = "none";
document.getElementById('passenger3').style.display = "none";
document.getElementById(show).style.display = "block";
}
</script>
<select name="#" id="#">
<option selected="selected"> </option>
<option onClick="display_div('passenger1');">1</option>
<option onClick="display_div('passenger2');">2</option>
<option onClick="display_div('passenger3');">3</option>
</select>
<div id="passenger1" style="display:none;"> hey, 1 works </div>
<div id="passenger2" style="display:none;"> hey, 2 works </div>
<div id="passenger3" style="display:none;"> hey, 3 works </div>
Ответ №1:
Переместите onChange function
Комментарии:
1. К сожалению, это означает, что ваш вызов javascript не завершится во второй раз, если вы выберете ту же опцию. Кто-нибудь знает хорошее решение для этого?
Ответ №2:
переместите «onClick» из options в элемент select
<select onchange="this(this.selectedIndex)">
<option value="passenger1">1</option>
Ответ №3:
параметр onclick on не является допустимым обработчиком кликов. Вместо этого используйте onchange при выборе.
Ответ №4:
IE и Chrome не распознают события в элементах опции выбора. Вы можете удалить события onclick из своих опций и добавить следующее событие onchange в свой элемент select, чтобы заставить его работать с вашим текущим кодом:
onchange="display_div('passenger' this.value);"