Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > проблемы с исполнением ф-ций в Mozilla


Автор: sandland 24.4.2009, 23:22
есть простенькая ф-ция 
Код

    function do_change(size)
    {
                       // ...
    }

Она выполняется onChange на элементе <select> - тут все ок, работает как надо во всех браузерах. Далее я пытаюсь просто выполнить эту ф-цию без события, а при загрузке страницы:
Код

 <script>
 do_change(size.value);// start loading
 </script>

и начинаюстся пробелмы. IE, Opera воспринимают как надо..Firefox просто не хочет воспринимать ф-цию, добавил для првоерки в тело alert(), идо его выполнения даже не доходит. 

Я бы с радостью повесил эту ф-цию на onLoad на  <body>, но  проект на модули разделен + smarty, и так не получится сделать. 
Прошу подсказать, как правильно исполнять ф-ции, чтобы работало везде.

Автор: bars80080 24.4.2009, 23:29
видать, функция выполняется раньше, чем загружается нужный элемент.

что есть size? ибо если вы используете это слово, то зря, лучше избегать служебных и сходных слов в javascript

Автор: sandland 24.4.2009, 23:34
сменил на p_size...это имя элемента select.
Не работает и в ИЕ все же...не может найти что такое p_size. Решил проверить, поставил задержку на выполенине 10 сек. Этого хватило бы на загрузку страницы...ПРоблема теперь что он не видит элемент select

то есть получается так: 
Код

<select name="p_size">
</select>

<script>
alert(p_size.value);    //  ERROR
</script>


Может я что путаю...

Автор: underW 25.4.2009, 01:38
а если вот так попробывать:
Код

<select name="p_size">
</select>

<script>
alert(document.all.p_size.value);
</script>


так во всех браузерах срабатывает. 

То что Вы говорите, не видит select - это не совсем так, select видит, просто, если я не ошибаюсь, то элемент <select> не имеет свойства  value или оно у Вас не задано. 

Автор: Photon 26.4.2009, 15:55
Код

var sel_obj = document.all.p_size;
alert(sel_obj.options[sel_obj.selectedIndex].value);


Правильно примерно так..

Автор: VKoresh 14.5.2009, 21:34
Цитата(Photon @ 26.4.2009,  15:55)
Код

var sel_obj = document.all.p_size;
alert(sel_obj.options[sel_obj.selectedIndex].value);


Правильно примерно так..

так правильно только для ИЕ. В ФФ нет
Код

 document.all

Автор: Aliance 15.5.2009, 13:39
Цитата

document.all.p_size.value
...
так во всех браузерах срабатывает. 

Хотя бы проверяли свой код, прежде чем вводить человека в заблуждение?

Вот так будет работать во всех современных браузерах:
Код

<select id="my-select"></select>
<script>
alert( document.getElementById( 'my-select' ).value );
</script>

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)