Bueno, he estado jugando un poco intentando hacer el text>>password.
Código PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title> New Document </title>
<meta name="Author" content="">
<meta name="Keywords" content="">
<meta name="Description" content="">
</head>
<body>
<input type="checkbox" id="check" onclick="cambia()" /> Que sea tipo password <br />
<input type="text" value="" id="caja" />
<script language="javascript">
// char_to_hexa de http://www.upcnet.es/~abp1/cosillas/teclas/char_to_hexa.js
function char_to_hexa(codigo) {
var alto = Math.floor(codigo / 16);
if (alto > 10) {
if (alto == 10) alto = "A";
if (alto == 11) alto = "B";
if (alto == 12) alto = "C";
if (alto == 13) alto = "D";
if (alto == 14) alto = "E";
if (alto == 15) alto = "F";
}
var bajo = codigo % 16;
if (bajo >= 10) {
if (bajo == 10) bajo = "A";
if (bajo == 11) bajo = "B";
if (bajo == 12) bajo = "C";
if (bajo == 13) bajo = "D";
if (bajo == 14) bajo = "E";
if (bajo == 15) bajo = "F";
}
return ("%" + alto + bajo);
}
function cambia() {
if( document.getElementById("check").checked )
cambiaApass();
else
cambiaAtext();
}
var laCaja=document.getElementById("caja");
var valor="";
function soloAsteriscos() {
laCaja.value= valor.replace(/./gi, "*");
}
function cambiaApass() {
valor=laCaja.value;
soloAsteriscos();
laCaja.onkeypress=function(e) {
if(window.event)
var keyCode=window.event.keyCode;
else if(e) var keyCode=e.which;
if(keyCode==8) // se ha pulsado backspace
valor=valor.substring(0,valor.length-1); //borramos
else
valor+= unescape( char_to_hexa(keyCode) );
//alert("El valor es ahora:"+valor);
soloAsteriscos();
laCaja.focus();
return false;
}
}
function cambiaAtext() {
laCaja.onkeypress=null;
laCaja.value=valor;
}
</script>
</body>
</html>
En realidad no cambia a password, pero actúa como password. Funciona en IE y en FF. No está completo, como veis hay que detectar el backspace para eliminar un caracter y no añadir a la variable valor algo extraño en vez de eliminar el ultimo caracter.
Lo que faltaría: Las teclas de las flechas no se detectan, amen de extrañas combinaciones como Ctrl+V etcétera. Creo que habría que hacer el código mucho más largo para entrar en cada caso...
Creo que para encontrar lo que buscamos aquí tal vez sea mejor utilizar el DOM y sustituir cada vez que se pulse una tecla el textbox por un passbox