Przejdź do głównej treści

Kwalifikacja: INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Zawód: Technik informatyk, Technik programista

Kategorie: Tworzenie stron WWW JavaScript

Słowa kluczowe: Atrybut class w HTML Atrybut id w HTML DOM w JavaScript HTMLCollection w JavaScript document.getElementsByClassName() w JavaScript

W skrypcie JavaScript zastosowano metodę DOM getElementsByName('login'). Metoda ta odwoła się do elementu

A.
<input id="login">
Źle. Element z id="login" znajduje getElementById().
B.
<input name="login">
Dobrze. Pole ma atrybut name="login", a tej wartości szuka metoda.
C.
<input class="login">
Źle. Element po klasie znajduje getElementsByClassName().
D.
<label for="login">Login</label>
Źle. Etykieta wskazuje pole atrybutem for, ale sama nie ma atrybutu name.

Metoda getElementsByName('login') wyszukuje elementy po wartości atrybutu name, więc znajdzie pole <input name="login">. Atrybut name nadaje się przede wszystkim polom formularza, bo pod tą nazwą wartość pola trafia do serwera, na przykład do $_POST["login"] w PHP.

Metoda zwraca kolekcję, ponieważ tę samą nazwę może mieć kilka elementów - typowo grupa przycisków opcji <input type="radio" name="plec">. Do pierwszego elementu sięga się więc indeksem: document.getElementsByName('login')[0].value. Do pojedynczego elementu częściej używa się jednak identyfikatora i metody getElementById().

Atrybut name jest też wymagany, żeby pole w ogóle zostało wysłane z formularzem - pole bez nazwy przeglądarka pomija.

Wszystkie elementy zawierają słowo „login”, ale w różnych atrybutach. Pole <input id="login"> ma identyfikator, a ten wyszukuje getElementById(). Pole formularza często ma jednocześnie id i name o tej samej wartości, stąd łatwo te atrybuty pomylić.

Pole z class="login" znajdzie getElementsByClassName(). Klasa służy głównie do stylowania i nie jest wysyłana z formularzem.

Etykieta <label for="login"> wskazuje swoim atrybutem for identyfikator pola, z którym jest powiązana. Sama nie ma ani nazwy, ani klasy login. Nazwa metody mówi wprost, czego szuka - „Name”, czyli wartości atrybutu name. Spełnia to tylko pole <input name="login">.

Dobra metoda na takie zadania: z nazwy metody odczytaj atrybut, którego szuka (Id, ClassName, Name, TagName), a potem znajdź element, w którym właśnie ten atrybut ma podaną wartość.

Wymagane logowanie

Ocenianie trudności pytań jest dostępne tylko dla zalogowanych użytkowników. Zaloguj się, aby skorzystać z pełni możliwości platformy.

Twoja ocena pomoże innym uczniom w przygotowaniu do egzaminu, a Tobie pozwoli na dostęp do spersonalizowanych statystyk.

Zgłoś błąd w pytaniu

Rozwiń sekcję i zmień pole, którego dotyczy błąd. Wysłane zostaną tylko zmienione sekcje.

Błędna kwalifikacja
Błąd w treści pytania
Błąd w treści odpowiedzi
Błąd w obrazie
Dane kontaktowe (opcjonalnie)
Podaj email, jeśli chcesz otrzymać informację o rozpatrzeniu zgłoszenia.