Nazwy pól formularza a Javascript

Dostaliśmy wiadomość, że nie działa formularz dodawania komentarzy na naszym blogu. Szybkie sprawdzenie kodu HTML i skryptów wykorzystywanych do walidacji wykazało, że nie działa metoda form.submit() formularza. Dlaczego nie działa - to już nie było takie oczywiste… Po raz kolejny niezastąpiony okazał się Firebug. Okazuje się, że akurat w naszym przypadku form.submit odnosił się do elementu button, któremu niebacznie nadaliśmy atrybut name="submit". Dla nas nauczka, dla was słowo przestrogi na przyszłość.

Bardzo dziękujemy Dominikowi Paszkiewiczowi za wskazanie nam tego błędu. Pozdrawiamy!

Ilość komentarzy: 2 do wpisu “Nazwy pól formularza a Javascript”

Whisller grudzień 17, 2007 o godzinie 21:13

Gravatar: Whisller

Trzeba id wykorzystać a nie name :P
Btw mootools.net :) Polecam

Krzysztof Danek grudzień 18, 2007 o godzinie 07:45

Gravatar: Krzysztof Danek

Na tym cała rzecz polega. W skryptach nie odwołujemy się nigdzie poprzez name. Problem polega na tym, że Javascript automatycznie przypisuje do elementu form właściwości o nazwach odpowiadających nazwom pól w formularzu. Dzięki temu, możemy się odwoływać poprzez np. document.nazwaformularza.nazwapola.
Jeśli teraz utworzyliśmy pole name="submit" to automatycznie do naszego formularza zostało to przyporządkowane jako nazwaformularza.submit. To natomiast nadpisało metodę .submit(). Mam nadzieję, że teraz wszystko jasne.

Co do mootools - jeśli spojrzałbyś na kod tej strony, zauważyłbyś, że cała jest oparta na tej bibliotece.

Zostaw komentarz

Zostaw komentarz

/ wymagane

/ wymagane

XHTML: Możesz używać tych tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>