Maison >interface Web >js tutoriel >Comment empêcher la soumission d'un formulaire Web en appuyant sur la touche ENTRÉE ?

Comment empêcher la soumission d'un formulaire Web en appuyant sur la touche ENTRÉE ?

Patricia Arquette
Patricia Arquetteoriginal
2024-11-17 21:02:02405parcourir

How to Prevent Web Form Submission on ENTER Keypress?

Empêcher la soumission d'un formulaire Web lorsque vous appuyez sur la touche ENTRÉE

Lors de la conception d'applications Web, il est souvent souhaitable d'empêcher la touche ENTRÉE de soumettre un formulaire . Cela peut être accompli en utilisant JavaScript.

Solution :

Révision 2012 (gestionnaire en ligne)

Définir une fonction checkEnter to gérer la pression sur la touche ENTRÉE :

function checkEnter(e){
 e = e || event;
 var txtArea = /textarea/i.test((e.target || e.srcElement).tagName);
 return txtArea || (e.keyCode || e.which || e.charCode || 0) !== 13;
}

Attribuer ce gestionnaire au formulaire :

document.querySelector('form').onkeypress = checkEnter;

Cela empêche la soumission sur ENTRÉE pour tous les éléments à l'exception des zones de texte.

Révision 2024 (délégation d'événement)

Mettre en œuvre une approche plus moderne en utilisant la délégation d'événement :

document.addEventListener(`keypress`, handle);

function handle(evt) {
  const form = evt.target.closest(`#testForm`);
  if (form) {
    if (evt.target.dataset.enterForSubmit) {
      if (evt.key === `Enter`) {
        evt.preventDefault();
        return logClear(`won't submit "${evt.target.value}"`);
      }
      return true;
    }
  }
}

function logClear(...txt) {
  console.clear();
  console.log(...txt);
}

Ajoutez l'attribut data-enter-for-submit aux éléments que vous souhaitez soumettre sur ENTER :

<input data-enter-for-submit="1" 
    placeholder="enter text, try using enter to submit">

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn