Ho ricevuto lo stesso messaggio di errore durante il tentativo di farlo in Firefox 5.
L'ho risolto utilizzando il codice seguente:
<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>
E per usarlo, basta impostare gli attributi onFocus e onBlur dei campi su qualcosa di simile al seguente:
<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 anche per un campo nome utente, quindi attiva / disattiva un valore predefinito. Basta impostare il secondo parametro della funzione su "" quando lo si chiama.
Inoltre, vale la pena notare che il tipo predefinito del mio campo password è in realtà password, nel caso in cui un utente non abbia javascript abilitato o se qualcosa va storto, in questo modo la sua password è comunque protetta.
La funzione $ (document) .ready è jQuery e si carica al termine del caricamento del documento. Questo quindi cambia il campo della password in un campo di testo. Ovviamente dovrai cambiare 'password_field_id' nell'ID del campo password.
Sentiti libero di usare e modificare il codice!
Spero che questo aiuti tutti quelli che hanno avuto lo stesso problema che ho fatto :)
- CJ Kent
EDIT: buona soluzione ma non assoluta. Funziona su FF8 e IE8 MA non completamente su Chrome (16.0.912.75 ver). Chrome non visualizza il testo della password quando la pagina viene caricata. Inoltre - FF visualizzerà la password quando è attivato il riempimento automatico.