Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие внутри работает, выношу в функцию - не работает! (https://javascript.ru/forum/events/7437-sobytie-vnutri-rabotaet-vynoshu-v-funkciyu-ne-rabotaet.html)

Oracool 01.02.2010 14:28

Событие внутри работает, выношу в функцию - не работает!
 
Есть такой код:
<select id="country" size="1" onChange="alert(document.getElementById('country')[selectedIndex].text);">

<option value="1">Страна 1</option>
<option value="7">Страна 2</option> 
<option value="15">Страна 3</option> 
</select>

и он замечательно работает, что впрочем очевидно!


а вот если вынести alert в функцию, то перестает:-?
<script type="text/javascript">
function Show()
{
var cnt = document.getElementById('country')[selectedIndex].text;
alert(cnt);
}
</script>


<select id="country" size="1" onChange="Show();">
<option value="1">Страна 1</option>
<option value="7">Страна 2</option> 
<option value="15">Страна 3</option> 
</select>


Пишет ошибку что:
selectedIndex - Определение отсутствует!
уже голова треснет щас, помогите плиз!

Gvozd 01.02.2010 14:32

<script type="text/javascript">
function Show(selectedIndex)
{
var cnt = document.getElementById('country')[selectedIndex].text;
alert(cnt);
}
</script>


<select id="country" size="1" onChange="Show(selectedIndex);">
<option value="1">Страна 1</option>
<option value="7">Страна 2</option> 
<option value="15">Страна 3</option> 
</select>

Oracool 01.02.2010 14:44

alert я на самом деле сделал для теста. на самом деле нужно примерно вот это:
<script type="text/javascript">  
var cnt = document.getElementById('country')[selectedIndex].text;  
document.write(cnt);
</script>
  
<select id="country" size="1">  
<option value="1">Страна 1</option>  
<option selected value="7">Страна 2</option>   
<option value="15">Страна 3</option>   
</select>


короче говоря нужно в переменную запихать текст выбранного пункта, т.е. "Страна 1" или "Страна 2" ну и т.д.

B~Vladi 02.02.2010 16:54

document.getElementById('country')[document.getElementById('country').selectedIndex].text


Внимательнее надо быть.

e1f 02.02.2010 17:09

Аааа! Ну что ж вы все ему про this не скажете :)
<script type="text/javascript">
    function Show(self) {
        var cnt = self.options[self.selectedIndex].text;
        alert(cnt);
    }
</script>
<select id="country" size="1" onChange="Show(this);">
<option value="1">Страна 1</option>
<option value="7">Страна 2</option>
<option value="15">Страна 3</option>
</select>


Часовой пояс GMT +3, время: 08:12.