Recibí el mismo mensaje de error al intentar hacer esto en Firefox 5.
Lo resolví usando el siguiente código:
<script type="text/javascript" language="JavaScript">
$(document).ready(function()
{
var passfield = document.getElementById('password_field_id');
passfield.type = 'text';
});
function focusCheckDefaultValue(field, type, defaultValue)
{
if (field.value == defaultValue)
{
field.value = '';
}
if (type == 'pass')
{
field.type = 'password';
}
}
function blurCheckDefaultValue(field, type, defaultValue)
{
if (field.value == '')
{
field.value = defaultValue;
}
if (type == 'pass' && field.value == defaultValue)
{
field.type = 'text';
}
else if (type == 'pass' && field.value != defaultValue)
{
field.type = 'password';
}
}
</script>
Y para usarlo, simplemente configure los atributos onFocus y onBlur de sus campos en algo como lo siguiente:
<input type="text" value="Username" name="username" id="username"
onFocus="javascript:focusCheckDefaultValue(this, '', 'Username -OR- Email Address');"
onBlur="javascript:blurCheckDefaultValue(this, '', 'Username -OR- Email Address');">
<input type="password" value="Password" name="pass" id="pass"
onFocus="javascript:focusCheckDefaultValue(this, 'pass', 'Password');"
onBlur="javascript:blurCheckDefaultValue(this, 'pass', 'Password');">
Lo uso también para un campo de nombre de usuario, por lo que alterna un valor predeterminado. Simplemente establezca el segundo parámetro de la función en '' cuando lo llame.
También vale la pena señalar que el tipo predeterminado de mi campo de contraseña es en realidad contraseña, en caso de que un usuario no tenga habilitado JavaScript o si algo sale mal, de esa manera su contraseña aún está protegida.
La función $ (document) .ready es jQuery y se carga cuando el documento ha terminado de cargarse. Esto luego cambia el campo de contraseña a un campo de texto. Obviamente, tendrá que cambiar 'password_field_id' a la identificación de su campo de contraseña.
¡Siéntase libre de usar y modificar el código!
Espero que esto ayude a todos los que tuvieron el mismo problema que yo :)
- CJ Kent
EDITAR: Buena solución pero no absoluta. Funciona en FF8 e IE8 PERO no completamente en Chrome (16.0.912.75 ver). Chrome no muestra el texto de la contraseña cuando se carga la página. Además, FF mostrará su contraseña cuando la función de autocompletar esté activada.