js: получить результат selecta

vladlen

Новичок
js: получить результат selecta

Хочу вывести результат выбора selecta. Ниже приведённый код работает только в Опере.
Как такое реализовать в IE?

<script language="JavaScript">
function test() {

alert (document.getElementById('y').value);

}
</script>
<form name="form1" action="#" target="mainFrame">

<select name="y" onChange="javascript:test()" id="y">
<option>z</option>
<option>x</option>
<option>c</option>
</select>
</form>
 

vladlen

Новичок
Он не ругается, алерт показывает пустое значение. Я так понимаю, к выбранному елементу SELECT в IE , надо обращаться другим способом. document.getElementById('y').value не подходит. Вопрос каким?

if(document.getElementById('y').value){
alert ("yes");
}else{
alert ("no");
}
 

phprus

Moderator
Команда форума
vladlen
Используй this.options[this.selectedIndex].value в обработчике onChange.
 

vladlen

Новичок
phprus
Используй this.options[this.selectedIndex].value в обработчике onChange.

Не совсем понимаю, как правильно этим воспользоваться.
Если делаю так, то результат прежний.

function test(www) {
alert (www);
}
<form name="form1" action="#" target="mainFrame">

<select name="y" onChange="javascript:test(this.options[this.selectedIndex].value);" id="y">
<option>z</option>
<option>x</option>
<option>c</option>
</select>
</form>
 

denver

?>Скриптер
vladlen
У option есть аттрибут value:
<option value="z">хочу опцию "z"</option>
По спецификации опера всё возвращает правильно. Но видно mozilla и IE не в курсе что если аттрибута нет то нужно юзать содержимое. Думаю, легче задать этот аттрибут, чем еще как извращаться.
 

WDStalker

Новичок
vladlen делай так и будет счастье:

function test(element) {

alert (element.options[element.selectedIndex].value);
}

<form name="form1" action="#" target="mainFrame">

<select name="y" onChange="test(this)">
<option>z</option>
<option>x</option>
<option>c</option>
</select>
</form>
 

Etwas

Новичок
Автор оригинала: denver
vladlen
У option есть аттрибут value:
<option value="z">хочу опцию "z"</option>
По спецификации опера всё возвращает правильно. Но видно mozilla и IE не в курсе что если аттрибута нет то нужно юзать содержимое. Думаю, легче задать этот аттрибут, чем еще как извращаться.
Зачем так? Не проще просто использовать this.value?
<select name="y" onChange="test(this.value)" id="y">
 
Сверху