En fait c’est plus subtil que ça encore : si l’utilisateur n’a rien mis dans le champ en question, et qu’il sort du champ, le texte par défaut sera remis. Sinon si l’utilisateur a tapé du texte lui-même le texte par défaut ne reviendra évidemment pas !
Ceci est particulièrement utile avec le formulaire #FORMULAIRE_RECHERCHE
par exemple qui contient par défaut le texte « Rechercher ».
Avec ce filtre vous allez pouvoir faire en sorte que lorsqu’un visiteur clique dans le champ, le texte « Rechercher » soit effacé pour lui permettre de taper le mot clé qu’il souhaite rechercher sans avoir à effacer le texte « Rechercher » comme c’est le cas actuellement.
Ensuite, lorsque l’utilisateur sort du champ (le champ « perd le focus », comme on dit), alors si l’utilisateur a tapé qqch dans le champ le contenu du champ n’est pas modifié (heureusement sinon la saisie de l’utilisateur n’aurait servie à rien !!) et s’il n’a rien tapé (juste cliqué dans le champ puis en est ressorti) le texte par défaut (ici « Rechercher ») se remet.
NB : Attention : pour appliquer un filtre à #FORMULAIRE_RECHERCHE
, il faut mettre 2 barres verticales : [(#FORMULAIRE_RECHERCHE||vider_sur_clic)]
Voici le code à inclure dans mes_fonctions.php3 :
function vider_sur_clic($texte)
{
$js = " onblur=\"if (!has_changed) value = oldval;\""
." onchange=\"has_changed=true;\""
." onfocus=\"if (typeof(has_changed) == 'undefined') has_changed = false; "
."if (!has_changed) {oldval=value; value = '';}\"";
$res = preg_replace("|<(input(.*) type='text'(.*))>|iU","<\$1 $js>",$texte);
return $res;
}
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |