J'ai trois zones de texte sur une page et chacune a un ID
Class
différent et situé dans un div
différent. J'essaie de cibler tous les <textarea>
sur la page et d'exécuter une fonction qui dosomething()
si un utilisateur tape toujours dans la zone de texte. Le problème est qu'il ne fonctionne que sur la zone de texte #first
et le reste est simplement ignoré. Voici le code que j'utilise. Merci!
$('#first, #second, .third').keyup(function(){
if ($('#first, #second, .third').val()){
alert("User is typing");
}})
3 réponses
Vous pouvez simplement cibler les éléments en spécifiant le nom de la balise dans votre sélecteur:
$('textarea').on('keyup', function(e) {
console.log('typing')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div>
<textarea></textarea>
</div>
<div>
<textarea></textarea>
</div>
<div>
<textarea></textarea>
</div>
Obtenez la valeur actuelle du premier élément de l'ensemble des éléments correspondants.
Votre chèque ne voit que si le premier élément de votre sélection a une valeur. Vous voulez probablement faire:
$('#first, #second, .third').keyup(function(){
if ($(this).val()) {
alert("User is typing");
}
})
Essaye ça:
$('#first, #second, .third').forEach(function(txtarea){
$(txtarea).keyup(function(){
if ($(this).val()){
alert("User is typing on THIS textarea");
}
})
})
Je ne sais pas pourquoi, mais j'ai également eu quelques problèmes avec la zone de texte. Pour moi, certains événements ne sont pas déclenchés sur la zone de texte. Dans ce code, j'ai fait une boucle pour chaque zone de texte et ser l'auditeur de touches. Javascript a beaucoup à faire. :)
Questions connexes
De nouvelles questions
javascript
Pour des questions concernant la programmation dans ECMAScript (JavaScript / JS) et ses divers dialectes / implémentations (hors ActionScript). Veuillez inclure toutes les balises pertinentes dans votre question; par exemple, [node.js], [jquery], [json], etc.