0
votes

Comment déclencher une fonction lorsque le champ Entrée est ciblé et que la touche Entrée est enfoncée?

Ainsi, j'ai un champ de saisie où les utilisateurs peuvent entrer du texte.  Entrez la description de l'image ici

Il y a un bouton" Ajouter "qui déclenche une fonction adveval. En plus de déclencher la fonction Addval lorsque vous appuyez sur le bouton, je voudrais que la fonction soit déclenchée si le curseur est dans le champ d'entrée, et em> la touche Entrée est enfoncée. P>

Je suis capable d'ajouter des auditeurs d'événements pour «Onfocus» ou «KeyPress», mais vous ne savez pas comment combiner les deux conditions. Tous les conseils sur la meilleure méthode ou la meilleure logique pour y parvenir avec Jusk JS / HTML? P>

HTML: P>

numField.addEventListener('keypress', function(e){
  e.preventDefault();
  if(e.key==='Enter'){
    addVal();
  }
})


3 commentaires

Est-ce que cela répond à votre question? Entrez la touche Appuyez sur l'événement dans JavaScript


Ne le pense pas, cette question ne prend pas en compte le curseur / la concentration.


Juste FYI: Cela n'apparaît pas de votre question que votre problème est avec la manière de capturer l'événement, mais avec la manière de détecter la touche Entrée, qui est ce que le lien ci-dessus répond.


3 Réponses :


0
votes

Ceci est parce que vous empêchez l'action par défaut avant de vérifier que l'élément clé est enfoncé sur fort>. Faire fonctionner. Également dans votre cas, je ne peux pas voir si vous utilisez formulaire code> ou quelque chose, donc si vous n'utilisez pas code> code> du tout, vous ne pouvez pas empêcher aucun événement. p>

<form>
  <label for="numAdder">Type a number here.</label>
  <input type="text" id="numAdder" name="numAdder">
  <button id="addBtn" type="button">add</button>
</form>


0 commentaires

0
votes

Tout mettre à l'intérieur d'un formulaire

p>

<form>
  <label for="numAdder">Type a number here.</label>
  <input type="text" id="numAdder" name="numAdder">
  <button type="submit">Add</button>
</form>


0 commentaires

1
votes

Ainsi, afin de déclencher un événement chaque fois que vous placez votre curseur dans le champ Entrée, vous devez ajouter un événement Onblur au champ d'entrée -

<script>
    inputfield = document.getElementById("numAdder");
    inputfield.onblur = function(){
        console.log("Event Triggered");
        // Whatever you want to do here 
    }
</script>


2 commentaires

Avez-vous essayé cela, ONBLUR est le meilleur événement qui soit déclenché lorsque la position du curseur change dans le champ de saisie.


Oui, avec ce code, la fonction est déclenchée lorsque je clique dans le champ de saisie puis sur celui-ci.