Проблема в том, что событие change
содержит ошибку в IE <9.Посмотрите на этот график: </p>
http://www.quirksmode.org/dom/events/change.html
Как вы можете видеть, событие изменения работает во всех браузерах, но IE только вызывает его на элементе ввода (я полагаю, это просто неотображается неправильно, или он недоступен для других элементов).
Попробуйте это в качестве теста, он должен работать для первого ввода в IE:
var inp = document.getElementById("list").firstChild.firstChild;
addHandler(inp, "change", function(event) {
event = event || window.event;
var target = event.target || event.srcElement;
if (target.nodeName === "INPUT") {
alert(target.value);
}
});
Я предлагаю вам циклчерез все ваши входы и присоедините слушатель к каждому элементу вместо делегирования события в UL, или используйте нормализатор событий, такой как jQuery или YUI.
Примечание: ваш код, кажется, работает нормально в IE9 +