Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.09.2011, 12:43
Новичок на форуме
Отправить личное сообщение для Metelitca Посмотреть профиль Найти все сообщения от Metelitca
 
Регистрация: 26.07.2011
Сообщений: 5

Динамический onchange с параметром.
Здравствуйте!

Помогите реализовать. Есть скрипт на странице:

Код:
<script type="text/javascript">
        var idx = 1;
        function createControlString() {

            var newDiv = document.createElement("div");
            
            var newControl = document.createElement("select");
            newControl.setAttribute("id", idx + "_machine");
            newControl.style.width = "65px";
            newControl.style.marginRight = "5px";
            newControl.options.lenght = 7;
            newControl.options[0] = new Option("Pr110", "110");
            newControl.options[1] = new Option("Pr120", "120");
            newControl.options[2] = new Option("Lm210", "210");
            newControl.options[3] = new Option("Sl310", "310");
            newControl.options[4] = new Option("Sl320", "320");
            newControl.options[5] = new Option("Sl330", "330");
            newControl.options[6] = new Option("Sl340", "340");
            newDiv.appendChild(newControl);

            document.getElementById('divWorkArea').appendChild(newDiv);
            document.getElementById(idx + '_machine').onchange = operation;
            idx += 1;
        }

        function operation(element) {
            alert(element.id);
        }
    </script>
Суть скрипта: на форму, по нажатию кнопки, добавляются комбобоксы. К комбобоксу привязано событие onchange, по срабатыванию которого должен отрабатываться скрипт по заполнению другого комбобокса. Проблема в следующем. В функцию с алертом (тестовая) мне нужно передать или контрол, который сгенерировал событие, или (что предпочтительнее) selectedIndex. Но не получается передать параметр. Т.е. если сделать просто функцию с алертом, то все отлично, все отрабатывается. Но как только пытаюсь сделать что-нить вроде document.getElementById(idx + '_machine').onchange = operation(this.selectedIndex); то вся работа скрипта прекращается.

Подскажите, что я делаю не так.
Ответить с цитированием
  #2 (permalink)  
Старый 17.09.2011, 01:58
Интересующийся
Отправить личное сообщение для Рон Посмотреть профиль Найти все сообщения от Рон
 
Регистрация: 05.06.2009
Сообщений: 23

Цитата:
document.getElementById(idx + '_machine').onchange =operation(this.selectedIndex);
А разве можно передавать параметры при присвоении метода событию?
firebug стоит, че пишет?
Ответить с цитированием
  #3 (permalink)  
Старый 17.09.2011, 02:07
Профессор
Отправить личное сообщение для Sweet Посмотреть профиль Найти все сообщения от Sweet
 
Регистрация: 16.03.2010
Сообщений: 1,618

Сообщение от Рон
А разве можно передавать параметры при присвоении метода событию?
Нельзя, конечно. Но у функций есть метод .bind:
function foo(argument){
  alert( argument );
};

var bar = foo.bind( window, "test" );
bar();
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Динамический селект alkelar Общие вопросы Javascript 1 05.07.2011 10:43
Динамический список из DIV`ов и INPUT`ов Andrew_li jQuery 5 09.06.2011 15:23
Как отловить событие onchange на LookUp поле? spps Events/DOM/Window 0 09.09.2008 16:02
Как повесить обработчик onchange на lookup spps Общие вопросы Javascript 0 09.09.2008 15:59
Помогите новичку - onChange() не срабатывает serp Общие вопросы Javascript 2 01.08.2008 14:47