Je cherche le moyen le plus simple de créer un formulaire HTML sans bouton d'envoi. C’est assez facile en soi, mais j’ai également besoin d’empêcher le formulaire de se recharger lui-même lorsque des tâches semblables à celles de la soumission sont effectuées (par exemple, frapper Enter dans un champ de texte).
Ajoutez un gestionnaire onsubmit au formulaire (via plain js ou jquery $ (). Submit (fn)) et renvoyez false à moins que vos conditions spécifiques ne soient remplies.
À moins que vous ne souhaitiez jamais que le formulaire soit envoyé - dans ce cas, pourquoi ne pas simplement laisser de côté l'attribut "action" de l'élément de formulaire?
Vous voudrez inclure action="javascript:void(0);"
dans votre formulaire pour empêcher les rechargements de page et maintenir le standard HTML.
Ajoutez simplement cet événement à votre champ de texte. Cela empêchera une soumission en appuyant sur Entrée, et vous êtes libre d'ajouter un bouton d'envoi ou d'appeler form.submit () comme requis:
onKeyPress="if (event.which == 13) return false;"
Par exemple:
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
Lorsque vous appuyez sur Entrée dans un formulaire, le comportement naturel du formulaire consiste à être soumis. Pour arrêter ce comportement qui n’est pas naturel, vous devez l’empêcher de le soumettre (comportement par défaut), avec jquery:
$("#yourFormId").on("submit",function(event){event.preventDefault()})
une idée:
<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
<input id="pwset" type="text" size="20" name='pwuser'><br><br>
<button type="button" onclick="CheckPassword()">Next</button>
</form>
et
<script type="text/javascript">
$("#pwset").focus();
function CheckPassword()
{
inputtxt = $("#pwset").val();
//and now your code
$("#div1").load("next.php #div2");
return false;
}
</script>
Deux façons de résoudre:
La première réponse est la meilleure solution:
Ajoutez un gestionnaire onsubmit au formulaire (via plain js ou jquery $ (). Submit (fn)) et renvoyez false à moins que vos conditions spécifiques ne soient rencontré.
Plus spécifique avec jquery:
$('#your-form-id').submit(function(){return false;});
À moins que vous ne vouliez pas que le formulaire soit envoyé - dans quel cas, pourquoi ne pas simplement laisser de côté l'attribut 'action' sur l'élément de formulaire?
Écrire des extensions Chrome est un exemple d’emplacement où vous pourriez avoir un formulaire à saisir, mais que vous ne voulez pas qu’il soit envoyé. Si vous utilisez action = "javascript: void (0);", le code fonctionnera probablement, mais vous vous retrouverez avec ce problème où vous obtenez une erreur lors de l'exécution de Javascript en ligne.
Si vous omettez complètement l'action, le formulaire sera rechargé, ce qui est également indésirable dans certains cas lors de l'écriture d'une extension Chrome. Ou si vous aviez une page Web avec une sorte de calculatrice intégrée, dans laquelle l'utilisateur fournirait une entrée et cliquerait sur «Calculer» ou quelque chose comme ça.