Mettre une variable dans onclick=clickclear

layatee
Invité n'ayant pas de compte PHPfrance

02 sept. 2009, 13:13

Bonjour,

Je commence a essayer de developper un site multi langage un j'ai un petit probleme avec un champ texte dans lequel je souhaite affiché un message par defaut puis dès que l'on click dessus le message s'efface.
Cela marche parfaitement lorsque j'insere le message en dur :

Code : Tout sélectionner

<input type="text" name="keyword" size="32" value=" Recherche sur le site" id="sbi" onclick="clickclear(this,' Recherche sur le site')" onblur="clickrecall(this,' Recherche sur le site')" style="font-family: verdana; font-weight:bold; font-size: 10pt; width:220px; color:#000; letter-spacing: 1; border: 1px inset #000; background-color: #FFFFFF" />
mais si je veut mettre une variable pour permettre l'affichage en plusieurs langue, le texte ne s'efface pas :

Code : Tout sélectionner

<input type="text" name="keyword" size="32" value=" [var.lang_search_on]" id="sbi" onclick="clickclear(this,"[var.lang_search_on]" )" onblur="clickrecall(this,"[var.lang_search_on]")" style="font-family: verdana; font-weight:bold; font-size: 10pt; width:220px; color:#000; letter-spacing: 1; border: 1px inset #000; background-color: #FFFFFF" />

Merci de votre aide

ViPHP
ViPHP | 4039 Messages

02 sept. 2009, 13:22

En php? En javascript ?
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

layatee
Invité n'ayant pas de compte PHPfrance

02 sept. 2009, 14:20

En php pardon

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 sept. 2009, 14:35

Si ton attribut html est délimité par des guillemets, tu ne peux pas lui faire contenir de guillemets, sinon le navigateur s'arrêtera à la première guillemet fermante qu'il va trouver... en gros, en lisant ton code, le navigateur fait :
onclick="clickclear(this,"[var.lang_search_on]" )"
et va ignorer tout ce qui suit (et qui n'est pas en couleur)

Pour éviter cela, tu peux utiliser des apostrophes pour délimiter ta chaine entre guillemets, comme tu le fait dans ton exemple qui fonctionne :)
<input type="text" name="keyword" size="32" value=" [var.lang_search_on]" id="sbi" onclick="clickclear(this,'[var.lang_search_on]' )" onblur="clickrecall(this,'[var.lang_search_on]')" style="font-family: verdana; font-weight:bold; font-size: 10pt; width:220px; color:#000; letter-spacing: 1; border: 1px inset #000; background-color: #FFFFFF" />
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

layatee
Invité n'ayant pas de compte PHPfrance

02 sept. 2009, 15:43

Merci c'est vrai que s'etait une grossiere erreur mais ça marche toujours pas.
Le texte ne s'efface toujours pas.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

02 sept. 2009, 18:56

T'as des erreurs javascript ?
Peux-tu nous montrer le code de tes fonctions clickclear() et compagnie ?

(et euh... il est où le php dans tout ça ? parce que là, on voit surtout du javascript :))

layatee
Invité n'ayant pas de compte PHPfrance

03 sept. 2009, 12:45

voici mes fonction javascript
function clickclear(thisfield, defaulttext)
		{
			if (thisfield.value == defaulttext) {
				thisfield.value = '';
			}
		}

function clickrecall(thisfield, defaulttext) {
			if (thisfield.value == "") {
				thisfield.value = defaulttext;
			}
		}
Merci de votre aide