OVH Cloud OVH Cloud

Enlever le focus à un label ?

19 réponses
Avatar
Pierre Goiffon
Bonjour !

J'ai une page listant des liens
Afin de permettre de lancer les liens dans une nouvelle fenêtre (ou non),
j'ai ajouté une case à cocher, positionnée en fixe par CSS, qui sur click
lance une fonction pour modifier les target. Le HTML ressemble à ça :

<form action="">
<p>
<label>
<input type="checkbox" name="newwin" onClick="ChgATarget(this.checked)">
&nbsp;Liens dans nouvelle fenêtre
</label>
</p>
</form>

Le prb est qu'une fois cliqué sur le label, le focus lui est donné et que la
molette ne permet plus de scroller la page : en effet le focus est donné à
la case à cocher, qui est dans une boite positionnée en dehors du flux.

Ajouter this.blur() dans le onClick ne résoud le prb *QUE* si l'on clique
directement sur la case à cocher, pas si la sélection est effectuée sur le
label.

Comment faire donc pour que dans tous les cas la molette continue de
permettre le scroll ?

9 réponses

1 2
Avatar
Pierre Goiffon
YD wrote:
Une page pour reproduire le prb :
http://pgoiffon.free.fr/_temp/20050720_fixed_focus.html [...]


Un simple ajout de onfocus="this.blur()" dans la balise INPUT


!!!!!!
SUBLIME !!!
Je n'avais essayé que onClick="...;this.blur()"
Merci !


Avatar
Pierre Goiffon
ASM wrote:
Pour que ça fonctionne sous IE il aurait fallu quelques chose comme :

<input ... id="macheckbox">
<label for="macheckbox">...</label>

Mais sur la page finale il y a un appel à IE7 qui permet de s'affranchir
de cela (et de bcp d'autres choses)


L'un comme l'autre n'émotionneront pas bp mon Safari


Quelle version de Safari ?


Avatar
ASM
Pierre Goiffon wrote:


Quelle version de Safari ?


1.2.4 (v125.12)

--
Stephane Moriaux et son [moins] vieux Mac

Avatar
Pierre Goiffon
[les <label> n'ont pas d'effet sur Sarafi]

ASM wrote:
Quelle version de Safari ?


1.2.4 (v125.12)


Waoo, c'est la toute dernière en plus non ?
Dommage, c'est drolement pratique ces label...


Avatar
Cenekemoi
[les <label> n'ont pas d'effet sur Sarafi]

ASM wrote:
Quelle version de Safari ?


1.2.4 (v125.12)


Waoo, c'est la toute dernière en plus non ?
Dommage, c'est drolement pratique ces label...


J'avoue ne jamais les utiliser.
Pour toi, STP, quels en sont les principaux avantages par rapport à ce
qui existe (<span>, <div> et autres...) ?

--
Cordialement, Thierry ;-)



Avatar
YD

Dommage, c'est drolement pratique ces label...


[...] quels en sont les principaux avantages par rapport à ce
qui existe (<span>, <div> et autres...) ?


Quand on clique sur le texte du label, la case est cochée (ou
décochée c'est selon bien sûr) ! Bien pratique de ne pas avoir
à viser pile la checkbox...

S'il s'agit d'un input text, le focus est placé dans l'input
sur le clic sur le label.


--
Y.D.


Avatar
Cenekemoi
Quand on clique sur le texte du label, la case est cochée (ou
décochée c'est selon bien sûr) ! Bien pratique de ne pas avoir
à viser pile la checkbox...

S'il s'agit d'un input text, le focus est placé dans l'input
sur le clic sur le label.


Mais, reprend-moi si je me trompe, cela ne fonctionne pas avec IE 6
!...(ou alors très mal)

--
Cordialement, Thierry ;-)

Avatar
Yann-Erwan Perio
Cenekemoi wrote:

[labels]

Mais, reprend-moi si je me trompe, cela ne fonctionne pas avec IE 6
!...(ou alors très mal)


A priori les labels fonctionnent à partir de IE4+ (non testé sur Mac,
mais il n'y a aucune raison que cela ne fonctionne pas, c'est du HTML
standard - hm - hmmm - avec IE cela ne veut peut-être pas dire grand
chose cependant).

---
<form action="foo">
<label for="foo1">
<input type="checkbox" name="c" id="foo1">Javascript
</label>

<!-- ou -->

<input type="checkbox" name="c" id="foo2">
<label for="foo2">JScript</label>
</form>
---

Un attribut onselectstart="return false" peut même être ajouté pour
éviter les désagréments d'une sélection de label lors de clics trop
rapprochés.


HTH,
Yep.

Avatar
newdb
Yann-Erwan Perio wrote:
A priori les labels fonctionnent à partir de IE4+ (non testé sur Mac,
mais il n'y a aucune raison que cela ne fonctionne pas, c'est du HTML
standard - hm - hmmm - avec IE cela ne veut peut-être pas dire grand
chose cependant).


sous ant'X (antique et antérieur à X) système mac, avec IE5.1.7 la
première formulation n'est pas reconnue (un clic sur le texte du label
ne coche/décoche pas la case), la seconde oui.

<form action="foo">
<label for="foo1">
<input type="checkbox" name="c" id="foo1">Javascript
</label>
<input type="checkbox" name="c" id="foo2">
<label for="foo2">JScript</label>
</form>


--
@@@@@
E -00 comme on est very beaux dis !
' `) /
|_ =="

1 2