Je cherche la meilleure façon de créer un formulaire HTML qui n'a pas de bouton de soumission. C'est assez facile en soi, mais j'ai aussi besoin d'empêcher le formulaire de se recharger lui-même lorsque des choses semblables à une soumission sont faites (par exemple, appuyer sur Entrée dans un champ de texte).
Réponses
Trop de publicités?Ajoutez un gestionnaire onsubmit au formulaire (soit via plain js ou jquery $ ().submit(fn)), et retournez false si vos conditions spécifiques ne sont pas remplies.
À moins que vous ne souhaitiez pas que le formulaire soit soumis, pourquoi ne pas simplement omettre l'attribut « action » sur l'élément de formulaire ?
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 de soumission ou un formulaire d'appel.submit () si nécessaire :
onKeyPress="if (event.which == 13) return false;"
Par exemple :
<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>
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>
Lorsque vous appuyez sur Entrée sous une forme, le comportement naturel de la forme est d'être soumise, pour arrêter ce comportement qui n'est pas naturel, vous devez l'empêcher de soumettre(comportement par défaut), avec jquery :
$("#yourFormId").on("submit",function(event){event.preventDefault()})