J'ai reçu le même message d'erreur en tentant de le faire dans Firefox 5.
Je l'ai résolu en utilisant le code ci-dessous:
<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>
Et pour l'utiliser, définissez simplement les attributs onFocus et onBlur de vos champs sur quelque chose comme ceci:
<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');">
J'utilise également cela pour un champ de nom d'utilisateur, donc il bascule une valeur par défaut. Réglez simplement le deuxième paramètre de la fonction sur '' lorsque vous l'appelez.
Il convient également de noter que le type par défaut de mon champ de mot de passe est en fait un mot de passe, juste au cas où un utilisateur n'a pas activé javascript ou si quelque chose ne va pas, de cette façon, son mot de passe est toujours protégé.
La fonction $ (document) .ready est jQuery et se charge lorsque le document a fini de se charger. Cela transforme ensuite le champ de mot de passe en champ de texte. De toute évidence, vous devrez remplacer «password_field_id» par l'ID de votre champ de mot de passe.
N'hésitez pas à utiliser et modifier le code!
J'espère que cela aide tous ceux qui ont eu le même problème que moi :)
- CJ Kent
EDIT: Bonne solution mais pas absolue. Fonctionne sur FF8 et IE8 MAIS pas complètement sur Chrome (16.0.912.75 ver). Chrome n'affiche pas le texte du mot de passe lors du chargement de la page. Aussi - FF affichera votre mot de passe lorsque le remplissage automatique est activé.