recherche

Maison  >  Questions et réponses  >  le corps du texte

Comment éviter la soumission de formulaire ?

<p>J'ai un formulaire avec un bouton d'envoi quelque part. </p> <p>Cependant, j'aimerais d'une manière ou d'une autre "attraper" l'événement de validation et l'empêcher de se produire. </p> <p>Existe-t-il un moyen de procéder ? </p> <p>Je ne peux pas modifier le bouton Soumettre car il fait partie d'un contrôle personnalisé. </p>
P粉545218185P粉545218185494 Il y a quelques jours536

répondre à tous(2)je répondrai

  • P粉463418483

    P粉4634184832023-08-22 12:35:21

    Vous pouvez utiliser des événements en ligne comme celui-cionsubmit

    <form onsubmit="alert('停止提交'); return false;">

    ou

    <script>
       function toSubmit(){
          alert('我不会提交');
          return false;
       }
    </script>
    
    <form onsubmit="return toSubmit();">

    Exemple

    Maintenant, lors du développement de grands projets, ce n'est probablement pas une bonne idée. Vous devrez peut-être utiliser des écouteurs d'événements.

    Veuillez en savoir plus sur les événements en ligne par rapport aux écouteurs d'événements (addEventListener et attachEvent d'IE) ici . Parce que je ne peux pas l'expliquer mieux que Chris Baker.

    répondre
    0
  • P粉399585024

    P粉3995850242023-08-22 11:25:35

    Contrairement aux autres réponses, le retour falsen'est que la partie de la réponse. Considérons le cas où une erreur JS se produit avant l'instruction return...

    html

    <form onsubmit="return mySubmitFunction(event)">
      ...
    </form>

    script

    function mySubmitFunction()
    {
      someBug()
      return false;
    }

    Retour icifalse不会被执行,表单将以任何方式提交。您还应该调用preventDefault ne sera pas exécuté et le formulaire sera soumis de quelque manière que ce soit. Vous devez également appeler preventDefault pour empêcher l'action par défaut de soumission du formulaire Ajax.

    function mySubmitFunction(e) {
      e.preventDefault();
      someBug();
      return false;
    }

    Dans ce cas, le formulaire ne sera pas soumis même s'il y a une erreur !

    Vous pouvez également utiliser des blocs try...catch.

    function mySubmit(e) { 
      e.preventDefault(); 
      try {
       someBug();
      } catch (e) {
       throw new Error(e.message);
      }
      return false;
    }

    répondre
    0
  • Annulerrépondre