[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Смена type у input-а и IE
kirik
Привет всем!

Ребят, подскажите скриптину нормальную, как можно сменить тип элемента (чтобы в ИЕ работало). А именно нужно поменять с text на password и обратно.
пробовал -
Код
document.getElementById(id).type = 'text';
// ----
document.getElementById(id).setAttribute('type', 'text');


Гуглил - половина скриптов не корректно работают, вторая половина - решения через ЦСС.. нужно нормальное JS решение.

Чтоб его, этот майкрасофт...

Заранее спасибо!!



Спустя 18 минут, 14 секунд (17.12.2008 - 09:41) Sylex написал(а):
мне кажется вариант такой врядли есть валидный... нужно использовать типа document.createElement('input');

А имена разные у этих полей, это принципиально?

Тогда можно было бы просто 2 поля - текстовое и пароль. И одно из них - display: none smile.gif

Спустя 10 минут, 25 секунд (17.12.2008 - 09:52) kirik написал(а):
Sylex, хочу сделать такую штуку: при смене пароля рядом есть галочка "показать пароль" (для того чтоб проверить можно было), когда кликаешь на нее, поля должны становится текстовыми.

Цитата
Тогда можно было бы просто 2 поля - текстовое и пароль. И одно из них - display: none

можно, но тогда придется синхронизировать эти 2 поля, вводишь в одном - тоже самое "вводится" в скрытом..

Цитата
нужно использовать типа document.createElement('input');

++
похоже решил, спасибо! =)

код

jаvаscript:
PHP
function ge(id)
{
    return 
document.getElementById(id);
}

function 
changeInputType(obj_type)
{
    var 
new_obj document.createElement('input');
    
new_obj.type _type;
    if(
obj.valuenew_obj.value obj.value;
    if(
obj.sizenew_obj.size obj.size;
    if(
obj.namenew_obj.name obj.name;
    if(
obj.idnew_obj.id obj.id;
    if(
obj.classNamenew_obj.className obj.className;
    
obj.parentNode.replaceChild(new_objobj);
    return 
new_obj;
}


HTML:
HTML
<input type="password" class="txt" name="pass" id="pass" autocomplete="off" />
<input type="checkbox" onclick="_type = (this.checked) ? 'text' : 'password'; changeInputType(ge('pass'), _type);" />

Спустя 4 часа, 27 минут, 36 секунд (17.12.2008 - 14:19) FatCat написал(а):
Цитата (kirik @ 17.12.2008 - 09:52)
хочу сделать такую штуку: при смене пароля рядом есть галочка "показать пароль"

Я бы сделал наджаваскрипте 1.0:
1. Инпут на onblur отдает пароль в переменную.
2. По кнопочке "показать" через innerHTML перезаписывается весь тег, пароль берется из переменной.


PS: Предпочитаю писать на 1.0, чтобы не было проблем совместимости с браузерами.
Правда, будут проблемы с ФФ, в котором нестандартная объектная модель элементов полей формы; но все решается, если манипулировать через ID-ы.

Спустя 7 часов, 18 минут, 22 секунды (17.12.2008 - 21:38) kirik написал(а):
Цитата
Я бы сделал наджаваскрипте 1.0:
1. Инпут на onblur отдает пароль в переменную.
2. По кнопочке "показать" через innerHTML перезаписывается весь тег, пароль берется из переменной.

хе) да, интересный вариант! я даже о таком не подумал.. =) наверное даже кода меньше..=) но сделал так уже, пусть работает, пока ребята из МС че-нить еще более извращенное не придумают =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.