Comment puis-je trouver si une zone de texte (ou Textarea) est-elle actuellement mise au point? Je ne me soucie pas de savoir lequel c'est-à-dire que je dois juste savoir si on se concentre (a le curseur dedans). Comment ferais-je cela avec JavaScript et JQuery? P>
5 Réponses :
$('#yourTextAreaID').focus(function(){ // do something });
OK, mais à tout moment (pas nécessairement lorsque l'utilisateur clique sur une zone de texte) Comment vérifierais-je si une zone de texte a la focalisation?
Étant donné que l'OP ne se soucie pas de "Lequel c'est", je suggérerais de modifier le sélecteur de: $ ('Textarea: Focus, entrée: Texte: Focus') ... Code>
Je viens de trouver un document.ActiveLement. Comment puis-je vérifier si c'est une zone de texte ou une textarea?
@David merci, c'est plus propre.
Je ne reconnais pas le : focus code> pseudo-sélecteur et l'API ou un test rapide ...
@LonesomeDay, Catch intéressant: puisqu'il travaille sous CSS, je n'ai jamais pensé demander si elle a fonctionné ou non sous JQuery.
alert($("*:focus").attr("id"));
Comme @Lonesome a souligné ci-dessus,: Survol n'est pas un vrai sélecteur de jQuery. Je pensais que c'était aussi, mais quand j'ai vérifié la documentation, je ne pouvais pas le trouver mentionné.
Étant donné que vous avez trouvé quelque chose comme ça. P> P> document.activeelement code>, vous pouvez vérifier son nom nodename.
Merci, mais comment puis-je obtenir l'objet JQuery de Document.ActiveElement?
Cela ne vérifie pas les htllivelements modifiables. Voir ma réponse ci-dessous.
OK, je suis juste compris. Voici ce que j'ai fait:
Quelqu'un marque ceci comme réponse, il dit que je dois attendre 2 jours. :)
Vous êtes le seul à peut i> marquer cela comme réponse. Aussi, jetez un coup d'œil au Helpdown de dépassement de pile , pour obtenir des conseils sur la manière de formater vos réponses, en particulier des échantillons de code.
Notez que cela fonctionnera sur tous les navigateurs modernes, mais ce sera pas i> travailler sur de nombreux navigateurs obsolètes. Jetez un coup d'œil à cette réponse pour une technique pour surmonter cela.
Extension de la réponse acceptée par une vérification des HTMLDivelements modifiables:
if (document.activeElement.nodeName == 'TEXTAREA' || document.activeElement.nodeName == 'INPUT' || (document.activeElement.nodeName == 'DIV' && document.activeElement.isContentEditable)) { // ⦠}