2016-03-08 4 views
0

У меня есть раскрывающийся список, созданный из массива в JavaScript. Я хочу сделать что-то с выбранным значением, когда я изменяю выпадающее значение.Добавить событие onclick для опций в выпадающем списке динамически

var newArray = [3,5,4,6] 

var container = document.getElementById('container') 
var dropdown = creatSelectDropDown('thisDropdown', newArray) 
container.appendChild(dropdown) 

function creatSelectDropDown(id, array) { 

    var dropdown = document.createElement("select"); 
    dropdown.id = id; 

    for (var i = 0; i < array.length; i++) { 
     var option = document.createElement("option"); 
     option.text = array[i]; 
     option.value = array[i]; 
     dropdown.options.add(option); 
    } 


    return dropdown; 
} 

Таким образом, в приведенном выше коде пришлось бы либо:

option.onclick = dosomething(); 

Или

dropdown.onchange = dosomething(getvalueofoptiontag); 

Я явно не хватает что-то просто здесь ...

Fiddle играть с: https://jsfiddle.net/reko91/hnLxt4xh/1/

ответ

2

Можно связать функцию, чтобы изменить этот синтаксис:

dropdown.onchange = function(event) { 
    console.log(event); 
} 

или с помощью EventListener:

dropdown.addEventListener("change", function(event) { 
    console.log(event); 
}, false); 

То, что вы делаете неправильно, что вы должны передать функцию на OnChange события, как:

var dosomething = function() { /* do something */} 
dropdown.onchange = dosomething; 
+0

Как получить значение из выбранного тега опции? – thatOneGuy

+0

Получите цель события, затем его значение: event.target.value –

Смежные вопросы