Ответ 1
Добавить
transport_select.setAttribute("onchange", function(){toggleSelect(transport_select_id);});
или попробуйте заменить onChange
на onChange
У меня есть script, где я динамически создаю поля выбора. Когда эти поля создаются, мы хотим установить событие onchange для нового окна, чтобы указать на функцию, называемую toggleSelect().
Я не могу заставить синтаксис правильно создавать событие onchange. Может ли кто-нибудь сказать мне, что я делаю неправильно? Он не выдает ошибки, но не работает.
col = dataRow.insertCell(0);
var transport_select = document.createElement('select');
transport_select.id = transport_select_id;
transport_select.options[0] = new Option('LTL', 'LTL');
transport_select.options[1] = new Option('FTL', 'FTL');
transport_select.onChange = function(){toggleSelect(transport_select_id);};
col.appendChild(transport_select);
Добавить
transport_select.setAttribute("onchange", function(){toggleSelect(transport_select_id);});
или попробуйте заменить onChange
на onChange
Здесь другой способ привязки события на основе Спецификация событий W3C DOM уровня 2:
transport_select.addEventListener(
'change',
function() { toggleSelect(this.id); },
false
);
заменить:
transport_select.onChange = function(){toggleSelect(transport_select_id);};
с:
transport_select.onChange = function(){toggleSelect(transport_select_id);};
on ' C' hange → на ' c' hange
Вы также можете использовать addEventListener.
Если вы используете prototype.js, вы можете сделать это:
transport_select.observe('change', function(){
toggleSelect(transport_select_id)
})
Это устраняет (как надежду) проблему в кросс-браузерах