В последней версии jQuery (1.4.x), при изменении атрибута type в Internet Explorer (IE) бросается (throw) исключение (запрещено его изменять).
В стеке ошибок, браузер показывает, что jQuery бросает исключение, которое нигде не обрабатывается. Чтобы его отловить, можно использовать код:
try {
jQuery("input").attr('type','text');
} catch(e) {
alert(e.message)
}
Как решение проблемы, многие предлагают использовать jQuery('...').data('element','key','value'), но наверное проще избегать самой ситуации изменения типа поля.
Чаще всего, такая необходимость возникает, если нужно склонировать поле и потом заставить вести себя иначе (например склонировать поле пароля и установить клону тип - текст). Под другими браузерами все будет отлично, а под ИЕ получите ексепшин. Я предпочтаю, в таком случае, не клонировать поле, а создавать - уже с нужным типом и потом выставлять остальные параметры. Но можно и использовать вариант с jQuery.data()
Комментариев нет:
Отправить комментарий