[aide] donner le focus a un champ a partir d'un lien ?

HTML5, CSS3, Javascript, support des mobiles... Que penser de votre site ? Vous manquez d'informations pour la construction d'un site qui puisse s'afficher correctement partout ? C'est un problème simple, un peu complexe ? Venez ici !
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

[aide] donner le focus a un champ a partir d'un lien ?

Message par GregK84 »

Salut,
je voudrais donner le focus a un champ text quand on clic sur un lien (testuel ou image).

j'ai essayer la fonction ci dessous, elle fonction quand on utilise un "button" mais pas avec un lien. avez vous une solution ?

Code : Tout sélectionner

<input type="button" value="<- Donne le focus" onclick="this.form.frm_login.focus()">
<form name="myform" action="" method="post">
<input type="text" name="frm_login" value="" />
Merci,
Gregk84
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
netfab
Salamandre
Messages : 43
Inscription : 06 mars 2005, 13:37

Message par netfab »

Bonjour,

Déjà, avec le code que tu donnes çà ne peut pas fonctionner puisque le bouton est en dehors du formulaire :wink:
Ensuite, çà ne peut pas fonctionner de cette manière, puisque le pointeur this n'est utilisable qu'avec des éléments de formulaire, et pas avec des balises <a></a>.

Code : Tout sélectionner

<form name="myform" action="" method="post">

<input type="text" name="frm_login" value="" />

<a href="#" onclick="document.myform.frm_login.focus(); return false;" title="Donne le focus au champs">lien</a>

</form>
ou :

Code : Tout sélectionner

<form name="myform" action="" method="post">

<input type="text" name="frm_login" id="frm_login" value="" />

<a href="#" onclick="document.getElementById('frm_login').focus(); return false;" title="Donne le focus au champs">lien</a>

</form>
Mais étant donné que ton lien n'a que pour seul but d'éxécuter du javascript, autant le faire apparaître que si javascript est activé :

Code : Tout sélectionner

<html>

<head>

<script type="text/javascript">

function DonneFocus()	{
	document.getElementById('frm_login').focus();
	return false;
}

function AfficheLien()	{
	document.getElementById('monLien').innerHTML='<a href="#" onclick="return DonneFocus();" title="Donne le focus au champs">lien</a>';
}

window.onload=AfficheLien;
</script>

</head>

<body>

<form name="myform" action="" method="post">

<input type="text" name="frm_login" id="frm_login" value="" />

<span id="monLien"></span>

</form>

</body>

</html>
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Hum... pourquoi faire ça en javascript alors que le HTML a un mécanisme absolument identique ?

J'ai nommé l'élément label !

Code : Tout sélectionner

<label for="frm_login">lien</label>
<input type="text" name="frm_login" id="frm_login" value="" /> 
ou

Code : Tout sélectionner

<label>lien
<input type="text" name="frm_login" value="" /></label>
:wink:

Fonctionne partout, même JS désactivé, et probablement même dans Lynx.

Par contre je ne sais pas si quand on définit le id on peut se passer du name... je ne pense pas (mais pas sûr).
Nyro Xeo
Salamandre
Messages : 21
Inscription : 30 avr. 2005, 16:21

Message par Nyro Xeo »

Bah le name et l'id n'ont rien avoir !? L'attribut for de la balise <label> se relie à un ID de la même valeur :

Code : Tout sélectionner

<div>
<label for="id_input">Texte</label>
(...)
<input id="id_input" />
</div>
L'attribut name n'est utile que pour le traitement du formulaire.

Puis je ne vois pas comment <label> pourrait fonctionner sous Lynx puisqu'il s'agit d'un navigateur textuel ^^ Par contre il est utile pour lier le champ à sa description (accessibilité).
-={ Nyro Xeo }=-
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Nyro Xeo a écrit :Puis je ne vois pas comment <label> pourrait fonctionner sous Lynx puisqu'il s'agit d'un navigateur textuel ^^
Et alors ? En quoi ça l'empêcherait ? Effectivement je viens de vérifier et il ne le gère pas, mais il le pourrait tout à fait (comme un lien).
Nyro Xeo
Salamandre
Messages : 21
Inscription : 30 avr. 2005, 16:21

Message par Nyro Xeo »

Ah dans ce sens... Oui à vrai dire, c'est vrai. Mais je vois plus le <label> comme une description associée au champ, plus qu'avoir une utilité dans ce sens. Enfin bref, ça c'est juste différentes "interprétations" ;)

(Désolé si mon message t'a peut-être semblé agressif, ce n'était pas voulu; je dis ça parce que le tien me le semble [et comme c'est une réponse au mien... enfin voilà quoi ^^]:))
-={ Nyro Xeo }=-
calimo
Animal mythique
Messages : 14118
Inscription : 26 déc. 2003, 11:51

Message par calimo »

Nyro Xeo a écrit :(Désolé si mon message t'a peut-être semblé agressif, ce n'était pas voulu; je dis ça parce que le tien me le semble [et comme c'est une réponse au mien... enfin voilà quoi ^^]:))
Euh... non, je n'ai pas du tout trouvé ça "agressif" et ce n'était pas non plus le but de ma réponse désolé si tu l'as pris ainsi je suis parfois malhabile pour ce genre de choses :oops: J'aurais dû mettre un smiley 8)

C'était juste de l'étonnement, ne voyant pas en quoi le fait d'être un navigateur texte ne permettait pas l'utilisation des label... pour moi un label justement c'est un lien entre la description et le champ sur lequel la description porte, et ce indépendamment (à mon avis) de la méthode utilisée (que ce soit un clic, au clavier, ou même pourquoi pas une infobulle...)

C'est vrai que je suis souvent surpris par le manque d'implémentation du HTML dans Lynx, c'est dommage ils pourraient faire mieux :(
GregK84
Lézard à collerette
Messages : 360
Inscription : 15 oct. 2004, 15:24

Message par GregK84 »

je vous remercie tous pour vos solutions, mais je dois dire que la solution avec le <label>me convient parfaitement étant donné que mon formulaire est déjà réalisé avec des labels.

mais simple info, je suis obligé de stipuler un id si non cela ne fonctionne pas.

merci
Firefox,
Time for the hunted to be the hunter.

Config : WinXp, FF 1.0, TB 1.0, SB 0.2.
Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : Aucun utilisateur inscrit et 1 invité