2010-10-08 3 views
0

J'ai la fonctionnalité de recherche dans mon application, dans laquelle l'utilisateur clique dans la zone de texte, le texte dans la zone de texte disparaît. Cela fonctionne parfaitement en chrome (6.0) mais ne disparaît pas après avoir cliqué sur mozilla firefox (3.6) pourquoi?Le texte de Onclick disparaît en chrome mais pas en mozilla

// Voici le code:

echo "Search: "; 
      echo "<input type=\"text\" class=\"smalltxt\" name= \"srchtxt\" id= \"srchtxt\" value= \"enter username\" height=\"20px\" onfocus= \"javascript:areaOnFocus(srchtxt, 'enter username');\" onblur= \"javascript:areaOnBlur(srchtxt, 'enter username');\" />"; 

// fonction appelée:

function areaOnFocus(element, inputText) 
    { 
     if(element.value == inputText) 
     { 
       element.value=''; 
     } 
    } 

    function areaOnBlur(element, inputText) 
    { 
     if(element.value=='') 
     { 
       element.value = inputText; 
     } 
    } 

Merci à l'avance.

+0

Pourriez-vous préciser lequel des deux comportements vous attendez? (c'est-à-dire quel navigateur se trompe?). Et s'il vous plaît fournissez un peu de code pour que nous puissions faire des suggestions raisonnables plutôt que d'avoir à deviner. Aussi, avez-vous testé dans d'autres navigateurs? Quels ont été les résultats? – Spudley

+0

@Spudley texte dans la zone de texte disparaît onclick en chrome, mais doesnot dans mozilla. code ajouté. non je ne l'ai pas testé d'autres navigateurs. – Rishi2686

+0

S'il vous plaît regardez ma modification ci-dessous. Il semble que vous avez fait quelque chose de mal, parce que ma solution fonctionne pour moi dans Firefox 3.6.10. – rhino

Répondre

1

D'abord, vous n'avez pas besoin de javascript: dans les gestionnaires d'événements en ligne.
Ensuite, essayez de passer this au lieu de srchtxt comme premier argument pour les deux fonctions. En passant juste srchtxt, le navigateur trouve probablement l'élément avec le name spécifié, mais cela ne fonctionne pas dans Firefox si je me souviens bien.
Le code final devrait ressembler à ceci:

echo "<input type=\"text\" class=\"smalltxt\" name= \"srchtxt\" id= \"srchtxt\" value= \"enter username\" height=\"20px\" onfocus= \"areaOnFocus(this, 'enter username');\" onblur= \"areaOnBlur(this, 'enter username');\" />"; 

EDIT: @down: cela est impossible, parce que je l'ai essayé le code suivant:

<html> 
<head> 
<script type="text/javascript"> 
function areaOnFocus(element, inputText) 
{ 
    if(element.value == inputText) 
    { 
     element.value=''; 
    } 
} 

function areaOnBlur(element, inputText) 
{ 
    if(element.value=='') 
    { 
     element.value = inputText; 
    } 
} 
</script> 
<title>test</title> 
</head> 
<body> 
<input type="text" class="smalltxt" value="enter username" height="20px" onfocus="areaOnFocus(this, 'enter username');" onblur="areaOnBlur(this, 'enter username');" /> 
</body> 
</html> 

dans mon Firefox 3.6.10 et cela a bien fonctionné - quand la page a été chargée, la valeur de l'entrée était "entrez le nom d'utilisateur". Quand j'ai cliqué dessus, le texte a disparu. Et quand j'ai laissé le champ vide et que j'ai enlevé le focus, "entrer le nom d'utilisateur" est apparu à nouveau dedans. Alors ...

+0

l'a fait. mais pas de chance. – Rishi2686

+0

Je suis vraiment confus aussi parce que cela fonctionne quand je le fais dans un fichier séparé, mais juste obtenir ce problème dans le fichier principal. peux-tu suggérer quelque chose? – Rishi2686

+0

Hmm ... qu'en est-il de la console d'erreur? Y a-t-il des billes à l'intérieur? – rhino

Questions connexes