Это абсолютно возможно благодаря множеству вариантов JavaScript.В дополнение к тому, что a.stgeorge опубликовал об использовании jquery, вы также можете написать свой собственный JS, чтобы сделать это.
Смотрите его в действии здесь: http://www.moditekka.com/pwsample.html
Пример HTML:
<input type="text" name="inpPass" id="inpPass" value="Password"/>
Фрагмент JavaScript (это не работает в IE, см. Ниже):
var inpPass = document.getElementById("inpPass");
inpPass.onfocus = function() {
if(this.getAttribute("type") == "text") {
this.setAttribute("type", "password");
this.value = "";
}
}
inpPass.onblur = function() {
if(this.value == "") {
this.value = "Password";
this.setAttribute("type", "text");
}
}
РЕДАКТИРОВАТЬ: Если кто-то еще читает это, я только что понял, что мой аккуратный код не будет работать в IEБлагодаря продуманному решению в Сиэтле сделать свойство «type» доступным только после добавления элемента в DOM.Для этого я обновил код JavaScript ниже:
var inpPass = document.getElementById("inpPass");
inpPass.onfocus = function() {
if(this.getAttribute("type") == "text") {
var newInp = document.createElement('input');
newInp.onfocus = this.onfocus;
newInp.onblur = this.onblur;
newInp.ID = 'inpPass';
newInp.name = 'inpPass';
newInp.setAttribute('type', 'password');
this.parentNode.appendChild(newInp);
this.parentNode.removeChild(this);
newInp.focus();
}
}
inpPass.onblur = function() {
if(this.value == "") {
var newInp = document.createElement('input');
newInp.onfocus = this.onfocus;
newInp.onblur = this.onblur;
newInp.ID = 'inpPass';
newInp.name = 'inpPass';
newInp.setAttribute('type', 'text');
newInp.value = "Password";
this.parentNode.appendChild(newInp);
this.parentNode.removeChild(this);
}
}