2010-08-26 17 views
5

Ich habe Probleme beim Abrufen eines Formulars zu übermitteln, wenn das Name-Attribut des Absenden-Schaltfläche ist genau "senden". HierFormular senden Schaltfläche wird nicht gesendet, wenn der Name der Schaltfläche "senden" ist

ist der Code:

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

Bitte beachte, dass wir keine Standardeingabetyp „Eintragen“, sondern ein Eingabetyp „Schaltfläche“ mit JavaScript verwenden verwendet wird das Formular abzusenden nachdem ein Validierungsskript (checkForm) true zurückgegeben hat.

Die seltsame Sache ist, dass dies nicht funktioniert, wenn das Namensattribut "submit" ist. Das Problem ist case-sensitive, so dass die folgende (und andere Namensgebung, einschließlich no name-Attribute) funktioniert:

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

Ich habe über die W3C-Spezifikationen für einige Erwähnung eines reservierten Namen suchen, aber Ich konnte nichts finden. Ich vermute, ich übersehe etwas wirklich Offensichtliches hier, also hoffe ich, dass einige von euch da etwas sehen können, was ich nicht kann.

Danke für jede Hilfe.

+0

besser mit 'type =" submit "' –

+0

Ja - ich möchte, aber ich kann nicht - ich werde nicht in die Gründe gehen warum - es ist eine lange Geschichte, und es ist keine Entscheidung Ich kann machen. –

Antwort

14

Sie Probleme, weil die namesubmit zu sein, ist das Überschreiben der form.submit() Funktionsreferenz für diese <form>, verweist stattdessen form_29.submit auf diese Schaltfläche, anstatt die DOM submit() Funktion.

+0

D'oh! Vielen Dank! Ziemlich sicher, dass das die Antwort ist ... –

+7

Ja, das ist alles Netscape's Fehler für ursprünglich entschieden, dass Formularfelder als benannte Eigenschaften auf dem 'Form' Objekt, anstatt nur die' form.elements' Sammlung, wo Sie würden widerspiegeln erwarte sie. Dies, sowie die Reflektion von benannten Elementen auf "Dokument" (und in IEs noch schlimmerem Fall "Fenster") hat endlose Probleme verursacht. Wir können jetzt nie frei von diesem üblen Design sein. Verdammt ihr Fett, '' Gesichter. – bobince

Verwandte Themen