11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous!

Voilà j'ai une fonction javascript qui est appelée sur les évènements onfocus et onblur d'un champ input. Cette fonction a pour mission de modifier le texte de cet input ainsi que son type.
En effet ce champ input sert à saisir un mot de passe. Pour des raisons esthétiques la valeur de départ de ce champ est "Mot de passe" et donc son type est texte.
A l'appel de la fonction, je supprime le texte et passe le champ en type password. Tout se passe bien sous firefox mais sous IE j'ai une erreur : Impossible d'obtenir la propriété type. Cette commande n'est pas prise en charge.

En cherchant j'ai trouvé ce problème sur ce forum, mais aucune solution ne fonctionne :
voir la page sur le forum

Voilà ma balise html :


<input type="text" name="password" value="Mot de passe" size="10" maxlength="12" class="password_accueil" onfocus="remove_text_input(this,'Mot de passe',true,true); return false;" onblur="remove_text_input(this,'Mot de passe',false,true); return false;" />


et la fonction javascript :


function remove_text_input(input, valueToErase, toRemoved, password){

    if(toRemoved && (input.value == valueToErase)){
        input.setAttribute("value","");
        if(password){
            input.setAttribute("type","password");
        }
    }
    else if(!toRemoved && (input.value == "")){
        input.setAttribute("value",valueToErase);
        if(password){
            input.setAttribute("type","text");
        }
    }
}

Modifié par Simone (11 Jul 2008 - 15:37)
Bonjour,

IE ne laisse pas changer le type.
La seul solution avec IE est d'avoir 2 inputs (un texte, l'autre password). Tu cache le 'password' en premier lieu, puis tu inverse. Ou encore de créer un nouveau input dynamiquement.

Ce n'est pas forcément très propre mais c'est la seule solution.
Tout d'abord merci de ta réponse!
Même si c'est pas celle que j'attendais au moins je suis fixée Smiley biggrin !

Ok je vais essayer ta solution de cacher les input l'un après l'autre, même si c'est un peu du bidouillage ca devrait le faire quand même !

Merci beaucoup !
Hello,

ne pas oublier que si Javascript est désactivé il faut tout de même que le formulaire soit accessible : donc dans le code il faut que la balise <input> affichée soit celle de type password et c'est seulement ensuite par le biais de Javascript qu'on peut faire l'inversion...

Sinon, est-ce que tu considères que ce sujet est [Résolu] ? Smiley cligne
Salut!
Ah oui ca en effet je n'y aurais pas pensé, Merci !

Je le passe de suite en résolu !