Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.10.2012, 07:13
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Как открыть текст в инпуте с type=password?
Привет.
Есть инпут:
<input type=password>

соответственно когда вводим текст в это поле, он маскируется символом: *
Как с помощью javascript показать текст закрытый звездочками в поле с "type=password"?
Пробовал динамически заменить type у инпута с password на text, но естественно это ничего не изменило.
Как можно осуществить задуманное или это вообще невозможно сделать?
Ответить с цитированием
  #2 (permalink)  
Старый 05.10.2012, 08:01
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

не работает только в IE
подменять на input type="text" c value от input type="password"
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2012, 08:13
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Почему то не работает такой код:
function ShowHidePassword(id) {
element = document.getElementById(id);
if element.type == 'password' {
element.type = 'text'
}
else {
element.type = 'password'
}
}

В HTML следующий код:
<input type="password" id="pid">
<a href="#" onclick="ShowHidePassword('pid')">

Текст введенный в поле не показывается. По прежнему остаются символы *
Ответить с цитированием
  #4 (permalink)  
Старый 05.10.2012, 08:17
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

в IE только и не работает
Ответить с цитированием
  #5 (permalink)  
Старый 05.10.2012, 08:28
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

Kotakota,
<script>
function ShowHidePassword(id) {
element = document.getElementById(id);
if (element.type == 'password') {
/*element.type = 'text';
element.value = element.value;*/
var inp = document.createElement("input");
inp.id = id;
inp.type = "text";
inp.value = element.value;
//alert(inp.parentNode.tagName);
element.parentNode.replaceChild(inp, element);
}
else {
/*element.type = 'password';
element.value = element.value;*/
var inp = document.createElement("input");
inp.id = id;
inp.type = "password";
inp.value = element.value;
element.parentNode.replaceChild(inp, element);
}
}  
</script>
<input type="password" id="pid">
<a href="#" onclick="ShowHidePassword('pid')">click</a>
Ответить с цитированием
  #6 (permalink)  
Старый 05.10.2012, 08:50
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<input type="password">
<input style="display: none;">
<input type="button" value="show/hide">
<script>
window.onload = function () {
	function f(el1, el2) {
		el2.style.display  = 'inline';
		el1.style.display = 'none';
		el2.value = el1.value;
	}
	var els = document.body.children;
	els[2].onclick = function () {
		if (navigator.userAgent.indexOf('MSIE') != -1) {
			if (els[1].style.display != 'inline') {
				f(els[0], els[1]);
			} else {
				f(els[1], els[0])
			}
			return;
		}
		if (els[0].getAttribute('type') != 'text') {//
			els[0].setAttribute('type', 'text');
		} else {
			els[0].setAttribute('type', 'password');
		}
	}
}
</script>

либо через insertAdjacentHTML
Ответить с цитированием
  #7 (permalink)  
Старый 05.10.2012, 12:44
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Благодарю за ответы!
Ответить с цитированием
  #8 (permalink)  
Старый 06.10.2012, 04:09
Аватар для Aetae
Тлен
Отправить личное сообщение для Aetae Посмотреть профиль Найти все сообщения от Aetae
 
Регистрация: 02.01.2010
Сообщений: 6,491

Нахрена только мудрить с проверкой на ие - непонятно.
__________________
29375, 35
Ответить с цитированием
  #9 (permalink)  
Старый 06.10.2012, 09:29
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от Aetae
Нахрена только мудрить с проверкой на ие - непонятно.
для понта (шутка)
решение со сменой type всё же логичнее и проще и не подходит только для IE<9, поэтому основывать решение изначально на костыле имхо не гуд, потом только удалить кусок костыльного кода
Ответить с цитированием
  #10 (permalink)  
Старый 06.10.2012, 23:18
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

В конечном итоге с использованием JQuery получилось так:
<script language="Javascript">
function ShowHidePassword(id){
element = $('#'+id)
element.replaceWith(element.clone().attr('type',(element.attr('type') == 'password') ? 'text' : 'password'))
}
</script>
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Подскажите как отобразить текст. potkin Общие вопросы Javascript 17 26.10.2017 15:09
Как открыть ссылку ftp как папку? Denis29rus Общие вопросы Javascript 7 21.02.2014 12:03
Прокрутка; Изменение координат картинки (Sandr) Общие вопросы Javascript 12 31.12.2011 04:34
На входе HTML получить на выходе просто текст, как? Dmitry Общие вопросы Javascript 2 25.08.2008 10:42
Как распознать текст? monach79 Общие вопросы Javascript 12 21.07.2008 13:22