Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   тип поля объекта (https://javascript.ru/forum/misc/2420-tip-polya-obekta.html)

Anatoliy 23.12.2008 13:36

тип поля объекта
 
Есть поле
<input value='пароль' ".$OnFocusPassword." ".$OnBlurPassword.">,
где
$OnFocusPassword ="onFocus=if(this.value=='пароль'){this.valu e='';this.type='password';}";
$OnBlurPassword ="onBlur=if(this.value==''){this.value='парол ь';this.type='text';}";

Смысл кода: Изначально поле имеет Тип text и внем написано слово "пароль". Когда активизирую поле, то оно пустое и тип должен меняться на "password" - при вводе звездочки. В Опере оно меняется, вот только почемуто становится не активным и приходиться второй раз нажимать на него. В IE вообще не работает.

Я особо в ява функциях не силен. Подскажите где я ошибся.

Kolyaj 23.12.2008 13:38

ИЕ не позволяет менять тип input, если он уже находится в дереве.

Данная задача решается немножко по-другому. Делаются label, которые кладутся поверх input'ов, и при фокусе скрываются.

Anatoliy 23.12.2008 13:40

Пример можно ?

Kolyaj 23.12.2008 13:43

http://www.yandex.ru/

Это не посыл в поиск, это пример реализации. Нужно быть неавторизованным. Можно еще попробовать загрузить страницу с отключенным js.

Anatoliy 23.12.2008 13:45

Вот так везде работает
$OnFocusPassword ="onFocus=if(this.value=='пароль'){this.valu e=''}";
$OnBlurPassword ="onBlur=if(this.value==''){this.value='парол ь'}";

но он отображает с типом text, а мне надо чтоб сначала text, а при активизации password.

Как на ya сделано смотрел, но в виду скромных моих познаниях соотв ничего не понял :)

А как спрятать этот элемент метку ?

Андрей Параничев 23.12.2008 17:17

Имеется в виду следующее:
<html>
	<head>
		<style>
			label.subtitute {
				position: absolute;
				padding-left: 5px;
				line-height: 22px;
			}
		</style>
	</head>
	<body>
		<div>
			<label onclick="this.style.display = 'none'" class="subtitute" for="password">Password goes here!</label>
			<input name="pass" type="password" id="password"  size="25" />
		</div>
	</body>
</html>


Но в этом скрипте нужно доделать кое-что, например - скрывать label по событию focus поля ввода, чтобы он скрывался и при переходу на поле клавишей [Tab]. Ну и отображать label только в случае включенного JavaScript у пользователя (чтоб он не мешал вводу).


Часовой пояс GMT +3, время: 02:43.