2012-07-16 6 views
0

У меня возникли проблемы с получением скрипта для добавления атрибута onsubmit в форму в IE. Однако он отлично работает в Chrome.Невозможно установить атрибуты, т. Е.

document.getElementsByName('form_name').item(0).setAttribute("onsubmit","add_to_form()"); 

Это захватывает элемент штраф, и я могу использовать getAttribute распечатать уже существующие атрибуты просто отлично.

+0

Какая версия ie? http://reference.sitepoint.com/javascript/Element/setAttribute – Wex

+0

Произошла ли ошибка, вы пытались использовать свойство onsubmit вместо атрибута? – Musa

+0

Я не понимаю, как это может работать в chrome, форма будет просто отправляться, потому что нет предотвращения по умолчанию или возврата false – Esailija

ответ

2

Ваш документ, вероятно, ставит IE в режиме совместимости, так как в стандартном режиме, код, кажется, работает нормально.

Чтобы код работал в режиме Quirks, вы можете назначить свойству DOM onsubmit, а не атрибуту HTML. Эти два не обязательно соответствуют друг другу в старых версиях и режиме Quirks IE. В вашем примере используйте это вместо:

document.getElementsByName('form_name').item(0).onsubmit = add_to_form; 
2

Давайте перепишем это:

function listen(event, elem, func) { // cross-browser event listener 
    if (elem.addEventListener) elem.addEventListener(event, func, false); 
    else if (elem.attachEvent) elem.attachEvent('on' + event, func); // IE 
} 

listen('load', window, function() { 
    var form = document.getElementsByName('form_name')[0]; 
    listen('submit', form, add_to_form); 
}); 
Смежные вопросы