Y at-il un moyen de soumettre un formulaire HTML en utilisant JavaScript qui est garanti pour fonctionner dans toutes les situations?Comment soumettre de manière fiable un formulaire HTML avec JavaScript?
Je développe. L'approche commune semble être:
formElement.submit()
C'est bien beau, sauf pour une chose. Les champs d'un formulaire sont disponibles en tant qu'attributs de formElement
, donc s'il y a un champ avec nom ou id "text1", il peut être accédé comme formElement.text1
.
Cela signifie que si un des éléments est appelé « soumettre » (que ce soit son nom ou son id), alors formElement.submit()
ne fonctionnera pas. C'est parce que formElement.submit
ne sera pas une méthode de la forme, mais le champ avec ce nom. Malheureusement, il est assez fréquent que les boutons d'envoi aient un nom ou un identifiant "submit".
Deux exemples pour illustrer mon propos. Tout d'abord, ce qui suit ne fonctionnera pas, car un élément de la forme a le nom « Soumettre »:
<form name="example" id="example" action="/">
<button type="button" name="submit" onclick="document.example.submit(); return false;">Submit</button>
</form>
Ce qui suit fonctionnera bien. La seule différence est que j'ai supprimé le nom de « soumettre » de la forme:
<form name="example" id="example" action="/">
<button type="button" onclick="document.example.submit(); return false;">Submit</button>
</form>
Alors, est-il une autre façon de soumettre un formulaire HTML en utilisant JavaScript?
assez ennuyeux ... J'ai eu le même problème avec la propriété « longueur » de la forme (nombre de contrôles) est remplacé par la valeur d'un contrôle nommé "longueur". À la fin, j'ai changé le nom du contrôle. –
Voir http://stackoverflow.com/questions/876243/why-does-naming-your-html-form-submit-button-submit-break-things –
Suis-je stupide si je suggère de lui donner juste un autre nom. ? Par exemple. '" action "' ou '" exécuter "'. – BalusC