2012-06-26 2 views
4

У меня есть несколько текстовых полей, таких как SSN, номер телефона и идентификатор электронной почты. Я хотел бы сделать что-то вроде onfocus, он должен отображать весь контент этого окна ввода и при размытии, он должен замаскировать контент на что-то (скажем, астерикс). Заранее спасибоМаска и unmask текст ввода в html

ответ

10

Вы можете переключить тип элемента <input> между password и text в обоих случаях. См. Это example fiddle.

HTML

<input type="password" id="target" /> 

JS

<script> 
var inp = document.querySelector('#target'); 

inp.addEventListener('focus', function(){ 
    inp.type = 'text'; 
}); 
inp.addEventListener('blur', function(){ 
    inp.type = 'password'; 
}); 
</script> 
+0

или нас e jQuery $ ('# target'). focus (function() {$ (this) .attr ('type', 'text')}); – Onheiron

+0

@Onheiron это не работает. см. http://stackoverflow.com/questions/8378563/why-cant-i-change-the-type-of-an-input-element-to-submit – Technomad

+0

Вышеупомянутая скрипка не работает из-за некоторых помех от включая библиотеку Mootools. Вот обновленная [скрипка] (http://jsfiddle.net/VWAhC/87) с тем же кодом без библиотеки Mootools и рамки вокруг окна ввода, потому что ее было трудно увидеть. –

0

Вы можете просто использовать <input type="password" />, если хотите делайте это просто.

1

Попробуйте так:

<input type="text" id="emailId" name="emailId" /> 

Затем сделать:

var emailIdValue = ""; 

$(document).ready(function() { 

    emailIdValue = $('#emailId').val(); 

    $('#emailId').val("********"); 

    $('#emailId').focus(function() { 

      $(this).val(emailIdValue); 

    }).focusout(function() { 

      emailIdValue = $(this).val(); 
      $(this).val('********'); 

    }); 

});