11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour tout le monde,

J'ai un petit soucis de compatibilité made in IE ^^

J'explique mon soucis, j'ai un script pour me connecter a un site qui contient 2 champs : login et password.

Quand on arrive sur la page le type de ses deux champs est text.
Quand on clique sur le champ password je veux modifier son type en password.

Voici la fonction les codes :


<input type="text" class="form" name="login"  value="ID (email)" id="ch1" onfocus="clean(1);" size="28" /><br />
<input type="text" class="form" name="password" value="Mot de passe" id="ch2" onfocus="clean(2);" size="28" /><br />


function clean(_id) {
	if(_id == 1) {
		document.getElementById('ch1').value = "";
	}
	if(_id == 2) {
		document.getElementById('ch2').value = "";
		document.getElementById('ch2').type = "password";
	}
}


Avec ce code ça marche parfaitement sur Firefox et Safari mais pas sur Internet Explorer, que dois-je faire car je ne trouve pas la solution sur google ? :s


Merci
Modifié par Ashraam (17 Aug 2008 - 14:29)
haaa... notre ami IE et ces insuffisances, que de joies Smiley cligne

Une solution bourrin : ne pas modifier l'input mais le remplacer :
<script type="text/javascript">
function clean(_id) {
  if(_id == 1) {
    document.getElementById('ch1').value = "";
  }
  if(_id == 2) {
    document.getElementById('divPourPwd').innerHTML = "<input type='password' cl
ass='form' name='password' value='' id='ch2' size='28' /><br />";
    document.getElementById('ch2').focus(); // évite d'avoir à recliquer
  }
}
</script>
<input type="text" class="form" name="login"  value="ID (email)" id="ch1" onfocu
s="clean(1);" size="28" /><br />
<div id="divPourPwd">
<input type="text" class="form" name="password" value="Mot de passe" id="ch2" on
focus="clean(2);" size="28" /><br />
</div>   

Mais je viens de remarquer que sous IE, l'activation du focus sur le nouvel input ne fonctionne pas... il faut donc cliquer deux fois Smiley decu
oui je viens de voir aussi pour le focus... trop laid IE :o

en tout cas merci !
Modifié par Ashraam (16 Aug 2008 - 18:27)
Par contre je viens de voir un autre problème avec ce code, quand je clique sur le champ mot de passe ca modifie bien le type du champ mais ca met une bordure noire au bouton submit oO (que sur IE biensur)
Modifié par Ashraam (16 Aug 2008 - 18:47)
Salut,

Ashraam a écrit :
Par contre je viens de voir un autre problème avec ce code, quand je clique sur le champ mot de passe ca modifie bien le type du champ mais ca met une bordure noire au bouton submit oO (que sur IE biensur)
C'est lié au moteur de rendu d'IE et à ma connaissance on ne peut rien y faire...

Plus généralement, si tes précédents sujets sont résolus, merci de l'indiquer dans le titre. Smiley cligne
Quelqu'un m'explique l'intérêt de vouloir changer le type d'un input à la volée ?
J'ai beau me creuser la tête, je ne vois pas d'application utile...
a écrit :
Quelqu'un m'explique l'intérêt de vouloir changer le type d'un input à la volée ?
J'ai beau me creuser la tête, je ne vois pas d'application utile...


Avec mon expérience en agence web, je dirais que le but de la manoeuvre est de pouvoir mettre un texte dans le champ password du type "Votre mot de passe" comme ce que l'on trouve des fois dans un champ de recherche ou autres ...

Bref pas d'un grand intérêt. Smiley ravi