2010-08-26 7 views
5

Je rencontre des problèmes pour envoyer un formulaire lorsque l'attribut name du bouton submit est précisément "submit".Le bouton d'envoi de formulaire ne sera pas envoyé lorsque le bouton "submit" sera envoyé.

Voici le code:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="submit" type="button">

Notez que nous ne sommes pas en utilisant un type d'entrée standard de « présenter », mais plutôt un type d'entrée de « bouton » avec JavaScript utilisé pour soumettre le formulaire après un script de validation (checkForm) a renvoyé true. La chose étrange est que cela ne fonctionnera pas si et seulement si l'attribut de nom est "soumettre". Le problème est sensible à la casse, de sorte que les éléments suivants (et toute autre dénomination, y compris aucun attribut de nom) fonctionnera:

<input onclick="checkForm(document.form_29) && document.form_29.submit();" value="Submit" name="Submit" type="button">

je cherche sur les spécifications du W3C pour une mention d'un nom réservé, mais Je n'ai rien trouvé. Je soupçonne que je néglige quelque chose de vraiment évident ici, alors j'espère que vous pourrez voir quelque chose que je ne peux pas voir.

Merci pour toute aide.

+0

mieux vaut aller avec 'type =" submit "' –

+0

Ouais - Je voudrais, mais je ne peux pas - je ne vais pas entrer dans les raisons pourquoi - c'est une longue histoire, et ce n'est pas une décision Je peux faire. –

Répondre

14

que vous rencontrez des problèmes parce que le name étant submit est Outrepasser la référence de fonction form.submit() pour cette <form>, au lieu form_29.submit fait référence à ce bouton, plutôt que la fonction DOM submit().

+0

D'oh! Merci! Assez sûr que c'est la réponse ... –

+7

Oui, tout cela est la faute de Netscape pour décider à l'origine que les champs de formulaire devraient être reflétés comme des propriétés nommées sur l'objet 'form', plutôt que seulement la collection' form.elements' où vous auriez attendez-les. Ceci, ainsi que la réflexion des éléments nommés sur 'document' (et, dans le cas encore pire d'IE,' window') a causé des problèmes sans fin. Nous ne pouvons jamais être libérés de ce mauvais design. Damn leur graisse, '' visages. – bobince

Questions connexes