воскресенье, 26 декабря 2010 г.

jQuery установить значение атрибута type для браузера IE

В последней версии 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()

Комментариев нет:

Отправить комментарий