Je recherche la meilleure façon de créer un formulaire HTML qui n'a pas de bouton d'envoi. Cela en soi est assez simple, mais je dois également empêcher le formulaire de se recharger lorsque des tâches de type soumission sont effectuées (par exemple, frapper Enterdans un champ de texte).
javascript
html
forms
Matt Roberts
la source
la source
Réponses:
Ajoutez un gestionnaire onsubmit au formulaire (soit via plain js ou jquery $ (). Submit (fn)), et renvoyez false sauf si vos conditions spécifiques sont remplies.
À moins que vous ne souhaitiez que le formulaire soit soumis, jamais - auquel cas, pourquoi ne pas simplement omettre l'attribut «action» sur l'élément de formulaire?
la source
action
attribut n'est pas un formulaire, selon les normes - et provoquera en fait un rechargement de page dans certains navigateurs .. J'ai trouvé que celaaction="javascript:void(0);"
fonctionne bien.Vous voudrez l'inclure
action="javascript:void(0);"
dans votre formulaire pour empêcher les recharges de page et maintenir la norme HTML.la source
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 un formulaire d'appel.submit () si nécessaire:
Par exemple:
la source
Lorsque vous appuyez sur Entrée dans un formulaire, le comportement naturel du formulaire est d'être soumis, pour arrêter ce comportement qui n'est pas naturel, vous devez l'empêcher de soumettre (comportement par défaut), avec jquery:
la source
une idée:
et
la source
Deux façons de résoudre:
la source
textarea
poser des problèmes avec s, et éventuellement la sélection de la saisie semi-automatique ou des listes déroulantes, et le mobile peut être une autre source de problèmes.La première réponse est la meilleure solution:
Plus spécifique avec jquery:
L'écriture d'extensions Chrome est un exemple où vous pouvez avoir un formulaire de saisie utilisateur, mais vous ne souhaitez 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 concernant l'exécution de Javascript en ligne.
Si vous omettez complètement l'action, le formulaire se rechargera, 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, où l'utilisateur fournirait une entrée et cliquez sur "Calculer" ou quelque chose comme ça.
la source