Ogólnie przyjmuje się, że nazwa jest zawsze zastępowana przez id . Jest to do pewnego stopnia prawdziwe, ale praktycznie nie dotyczy pól formularzy i nazw ram . Na przykład w przypadku elementów formularza name
atrybut służy do określania par nazwa-wartość, które mają zostać wysłane do programu po stronie serwera, i nie należy go eliminować. Browsers do not use id in that manner
. Aby być bezpiecznym, możesz użyć atrybutów name i id w elementach formularza. Napiszemy więc:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Aby zapewnić zgodność, dobrym pomysłem jest posiadanie zgodnych wartości atrybutów nazwa i identyfikator, gdy są one zdefiniowane. Bądź jednak ostrożny - niektóre tagi, zwłaszcza przyciski opcji, muszą mieć nietypowe nazwy, ale wymagają unikalnych wartości identyfikatora. Raz jeszcze powinno to oznaczać, że identyfikator nie jest po prostu zamiennikiem nazwy; mają inny cel. Co więcej, nie pomijaj starego stylu, głębokie spojrzenie na współczesne biblioteki pokazuje taki styl składni używany czasami do celów wydajnościowych i łatwości. Twoim celem zawsze powinna być zgodność.
Teraz w większości elementów atrybut name został wycofany na korzyść bardziej wszechobecnego atrybutu id. Jednak w niektórych przypadkach, szczególnie tworząc pola ( <button>
, <input>
, <select>
, i <textarea>
), życie na atrybut name, ponieważ nadal jest wymagane, aby ustawić parę nazwa-wartość składania formularza. Ponadto okazuje się, że niektóre elementy, w szczególności ramki i łącza, mogą nadal używać atrybutu name, ponieważ często jest on przydatny do wyszukiwania tych elementów według nazwy.
Istnieje wyraźne rozróżnienie między identyfikatorem a nazwą. Bardzo często, gdy nazwa jest kontynuowana, możemy ustawić te same wartości. Jednak identyfikator musi być unikalny, a nazwa w niektórych przypadkach nie powinna - pomyśl przyciski radiowe. Niestety, wyjątkowość wartości identyfikacyjnych, choć wychwycona przez sprawdzanie poprawności znaczników, nie jest tak spójna, jak powinna być. Implementacja CSS w przeglądarkach będzie stylizować obiekty o wspólnej wartości id; dlatego nie możemy wyłapać błędów znaczników lub stylów, które mogłyby wpłynąć na nasz JavaScript do czasu uruchomienia.
To pochodzi z książki JavaScript- The Complete Reference by Thomas-Powell