JavaScript не работает в Internet Explorer - PullRequest
2 голосов
/ 20 августа 2011

У меня динамический выпадающий код. Здесь я хочу динамически загружать второй вариант выпадающего меню, меняя его параметры Это прекрасно работает во всех других браузерах, кроме IE. Я не знаю, в чем причина, потому что я начинающий. любой может объяснить причину.

HTML-КОД:

<select name="language" id="language" onchange="SetMedia(this)">
<option>Please select a Language</option>
<option>English</option>
<option>Tamil</option>
<option>Telugu</option>
</select>

<select name="media" onChange="processButtonData(this.value)" id="media" disabled="disabled">
<option>select</option>
</select>

JS CODE

<script type="text/javascript">
function SetMedia(objLanguage) {
var objMedia = document.getElementById("media");
objMedia.options.length = 0;
    objMedia.disabled = false;
switch (objLanguage.value) {
case "English":
    objMedia.options.add(new Option("Please Select a Media",""));
    objMedia.options.add(new Option("The Indian Express","http://www.indianexpress.com"));
    objMedia.options.add(new Option("The Hindu","http://www.hindu.com"));
    break;
case "Tamil":
    objMedia.options.add(new Option("Please Select a Media",""));
    objMedia.options.add(new Option("Dinamalar", "http://www.dinamalar.com"));
    objMedia.options.add(new Option("Dinamani", "http://www.dinamani.com"));
    break;
case "Telugu":
    objMedia.options.add(new Option("Please Select a Media",""));
    objMedia.options.add(new Option("Google","http://www.google.com"));
    objMedia.options.add(new Option("Google2","http://www.google.com"));
    break;
default:
    objMedia.options.add(new Option("select"));
    objMedia.disabled = true;
    break;
}
}

</script>

Ответы [ 2 ]

2 голосов
/ 20 августа 2011

Похоже, что браузеры, отличные от IE (например, Chrome), будут неявно устанавливать value тега <option>, используя его внутренний текст, но IE не делает этого. У вас есть два варианта:

1) Установите значение <option> явно

<option value="English">English</option>
<option value="Tamil">Tamil</option>
<option value="Telugu">Telugu</option>

Или,

2) Включить text

var language = (objLanguage.options[objLanguage.selectedIndex]).text;
switch (language) {
  // ...
}

(протестировано в Chrome и IE9.)

0 голосов
/ 20 августа 2011

Попробуйте использовать альтернативу, используя более старый метод, для динамического добавления опции

</p>

<pre><code>var option = document.createElement("option");
option.value = "";
option.text = "Please Select a Media";
try {
    objMedia.options.add(option, null);
} catch(exception) {
    objMedia.add(option); // Older IE doesn't support the standard
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...