Яка різниця між id
name
атрибутами та атрибутами? Вони, здається, обидва служать одній і тій же цілі надання ідентифікатора.
Мені хотілося б знати (зокрема, що стосується форм HTML), чи потрібно використання обох з будь-яких причин.
Яка різниця між id
name
атрибутами та атрибутами? Вони, здається, обидва служать одній і тій же цілі надання ідентифікатора.
Мені хотілося б знати (зокрема, що стосується форм HTML), чи потрібно використання обох з будь-яких причин.
Відповіді:
name
Атрибут використовується при передачі даних через тире. Різні органи управління реагують по-різному. Наприклад, у вас може бути кілька перемикачів з різними id
атрибутами, але однакові name
. При надходженні у відповіді є лише одне значення - вибрана радіо кнопка.
Звичайно, в цьому є більше, але це обов'язково змусить вас задуматися в правильному напрямку.
id
це те, з чим працює ваш інтерфейс (CSS, JS), а name
ваш сервер отримує та може потім обробляти. Це, в основному, відповідь Гресо.
Використовуйте name
атрибути для елементів управління формами (наприклад, <input>
та <select>
), оскільки це ідентифікатор, який використовується в POST
або GET
виклику, що відбувається під час подання форми.
Використовуйте id
атрибути, коли потрібно звертатися до певного елемента HTML за допомогою CSS, JavaScript або ідентифікатора фрагмента . Можна також шукати елементи за назвою, але простіше і надійніше шукати їх за ідентифікатором.
name
і id
зовсім. Ідентифікатор однозначно ідентифікує певний елемент HTML на сторінці. name
Атрибут елемента форми HTML, навпаки, не повинні бути унікальними, і часто це не так , наприклад, з допомогою перемикачів або сторінок з кількома <form>
елементами. Традиційно використовувати один і той же рядок name
і для того, id
де обидва використовуються в одному елементі HTML, але нічого не змушує вас це робити.
id
використовується для ідентифікації елемента HTML через модель об'єкта документа (через JavaScript або стилі CSS). id
очікується, що він буде унікальним у межах сторінки.
name
відповідає елементу форми і ідентифікує те, що розміщено назад на сервері .
Дивіться це http://mindprod.com/jgloss/htmlforms.html#IDVSNAME
Яка різниця? Коротка відповідь: використовуйте і те, і не хвилюйтеся з цього приводу. Але якщо ви хочете зрозуміти цю підступність, ось худий:
id = призначений для використання в якості такої цілі:
<some-element id="XXX"></some-element>
для таких посилань:<a href="#XXX"
.name = також використовується для позначення полів у повідомленні, надісланому серверу з протоколом HTTP (HyperText Transfer Protocol) GET або POST, коли ви натискаєте надіслати форму.
id = позначає поля для використання JavaScript і Java DOM (Модель об'єкта документа). Імена в name = повинні бути унікальними у формі. Імена в id = повинні бути унікальними у всьому документі.
Іноді ім’я = і id = імена будуть відрізнятися, оскільки сервер очікує того ж імені від різних форм у тому ж документі або різних перемикачів у тій же формі, що і в наведеному вище прикладі. Ідентифікатор = повинен бути унікальним; ім'я = не повинно бути.
JavaScript потребував унікальних імен, але тут було занадто багато документів без унікального імені = імен, тому люди W3 винайшли тег id, який повинен був бути унікальним. На жаль, старші браузери цього не розуміли. Тож вам потрібні обидві схеми іменування у ваших формах.
ПРИМІТКА: атрибут "name" для деяких тегів, таких як <a>
, не підтримується в HTML5.
name
важливо для <input>
тегів у <form>
поданні, оскільки параметри використовуються в HTTP, і id
це лише унікальний ідентифікатор
Те, як я думаю про це і використовую його, просте:
ід використовується для CSS та JavaScript / jQuery (має бути унікальним на сторінці)
ім'я використовується для обробки форми в PHP, коли форма подається через HTML (має бути унікальною у формі - певною мірою див . коментар Павла нижче)
Ідентифікаційний тег - використовується CSS, визначає унікальний примірник div, span або інших елементів. З'являється у моделі Javascript DOM, що дозволяє отримувати доступ до них за допомогою різних дзвінків функцій.
Тег імен для полів - Це унікально для кожної форми - якщо ви не робите масив, який ви хочете передати на PHP / обробку на стороні сервера. Ви можете отримати доступ до нього через Javascript за назвою, але я думаю, що він не відображається як вузол у DOM або можуть застосовуватися деякі обмеження (ви не можете використовувати .innerHTML, наприклад, якщо я пам'ятаю правильно).
Як правило, передбачається, що ім’я завжди замінюється id . Це, правда, певною мірою, але не для полів форм та імен кадру , практично кажучи. Наприклад, з елементами форми name
атрибут використовується для визначення пар імен-значень, що надсилаються програмі на стороні сервера, і не повинен бути усунутий. Browsers do not use id in that manner
. Щоб бути захищеним, ви можете використовувати атрибути ім'я та ідентифікатора на елементах форми. Отже, ми б написали наступне:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Для забезпечення сумісності хороша ідея мати відповідність значень атрибутів імені та id, коли обидва визначені. Однак будьте обережні - деякі теги, зокрема перемикачі, повинні мати неоднозначні значення імен, але вимагати унікальних значень ідентифікатора.Знову ж таки, це повинно посилатися, що id - це не просто заміна імені; вони різні за призначенням. Крім того, не варто оминати підхід у старому стилі, глибокий погляд на сучасні бібліотеки показує такий стиль синтаксису, який використовується часом для виконання та полегшення. Ваша мета завжди повинна підтримувати сумісність.
Тепер у більшості елементів атрибут імені застарілий на користь більш повсюдного атрибута id. Однак, в деяких випадках, в зокрема , утворюють поля ( <button>
, <input>
, <select>
і <textarea>
), ім'я атрибута життя, тому що по- , як і раніше потрібно , щоб встановити пару ім'я-значення для подання форми. Крім того, ми виявляємо, що деякі елементи, зокрема рамки та посилання, можуть продовжувати використовувати атрибут name, оскільки це часто корисно для отримання цих елементів по імені.
Існує чітка відмінність між id і іменем. Дуже часто, коли ім’я продовжується, ми можемо встановлювати однакові значення. Однак ідентифікатор повинен бути унікальним, а ім’я в деяких випадках не повинно - думати радіо кнопки. На жаль, унікальність значень id, захоплена під час перевірки розмітки, не така послідовна, як повинна бути. Реалізація CSS у веб-переглядачах буде стилювати об’єкти, які мають спільне значення ідентифікатора; Таким чином, ми можемо не зафіксувати помилки розмітки чи стилю, які можуть впливати на наш JavaScript до часу виконання.
Це взято з книги JavaScript- The Complete Reference by Thomas-Powell
name
має бути те саме (код на стороні сервера не має значення, який був поданий), але він id
повинен бути іншим (тому що він повинен бути унікальним на всій сторінці).
name
застаріла для цілей посилань і недійсна в HTML5. Він більше не працює принаймні в останньому Firefox (v13). Змінити <a name="hello">
на<a id="hello">
Ціль не повинен бути <a>
тегом, це може бути <p id="hello"
> або <h2 id="hello">
т.д., що часто є чистішим кодом.
Як чітко говорять інші пости, name
він все ще використовується (потрібен) у формах. Він все ще використовується в тегах META.
Це посилання має відповіді на той самий основний питання, але в основному id використовується для ідентифікації сценаріїв, а ім'я - на стороні сервера.
http://www.velocityreviews.com/forums/t115115-id-vs-name-attribute-for-html-controls.html
name Vs id
назва
<button>, <form>, <fieldset>, <iframe>,
<input>, <keygen>, <object>, <output>, <select>, <textarea>, <map>,
<meta>, <param>
name
атрибути, які використовуються в елементах стилю. Я припускаю, що це недійсно?
Ідентифікатор елемента введення форми не має нічого спільного з даними, що містяться в елементі. Ідентифікатори призначені для підключення елемента за допомогою JavaScript та CSS. Однак атрибут імені використовується в HTTP-запиті, що надсилається вашим браузером на сервер як ім'я змінної, пов'язане з даними, що містяться в атрибуті значення.
Наприклад:
<form>
<input type="text" name="user" value="bob">
<input type="password" name="password" value="abcd1234">
</form>
Після подання форми дані форми будуть включені до заголовка HTTP так:
Якщо ви додасте атрибут ID, він нічого не змінить у заголовку HTTP. Просто буде простіше підключити його за допомогою CSS та JavaScript.
Якщо ви не використовуєте власний метод подання форми для надсилання інформації на сервер (і замість цього робите це за допомогою JavaScript), ви можете використовувати атрибут name, щоб приєднати додаткову інформацію до вводу - скоріше, як поєднання її із прихованим вхідним значенням, але виглядає акуратніше, тому що він включений у вхід.
Цей біт досі працює у Firefox, хоча, мабуть, у майбутньому він може не отримати доступ.
Ви можете мати кілька полів введення з однаковим значенням імені, якщо ви не плануєте подавати старомодний спосіб.
На основі особистого досвіду та відповідно до опису W3 Schools для ознак:
Ідентифікатор - це глобальний атрибут і застосовується практично до всіх елементів у HTML. Він використовується для однозначної ідентифікації елементів на веб-сторінці, і до її значення здебільшого можна отримати доступ через інтерфейс (як правило, через JavaScript або jQuery).
name - це атрибут, який корисний конкретним елементам (таким як елементи форми тощо) у HTML. Її значення здебільшого надсилаються в бекенд-сервер для обробки.
Нижче представлено цікаве використання атрибута id. Він використовується в тезі і використовується для ідентифікації форми для елементів поза межами кордонів, щоб вони були включені до інших полів форми.
<form action="action_page.php" id="form1">
First name: <input type="text" name="fname"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="lname" form="form1">
Id: 1) Він використовується для ідентифікації елемента HTML через модель об'єкта документа (через Javascript або стилі CSS). 2) Ідентифікатор, як очікується, буде унікальним на сторінці.
Назва відповідає елементу форми і визначає, що розміщено назад на сервері. Приклад:
<form action="action_page.php" id="Myform">
First name: <input type="text" name="FirstName"><br>
<input type="submit" value="Submit">
</form>
<p>The "Last name" field below is outside the form element, but still part of the form.</p>
Last name: <input type="text" name="LastName" form="Myform">
Ідентифікатор використовується для унікальної ідентифікації елемента.
Ім'я використовується у формах. Хоча ви подаєте форму, якщо ви не дасте імені, нічого не буде подано. Отже, елементам форми потрібна назва, щоб визначитись методами форми, такими як "отримати або натиснути".
І вийдуть ті, лише атрибут імені.
id
Дасть елемент а ідентифікатор, так як тільки ви пишете реальний код, (наприклад , JavaScript) , ви можете використовувати ідентифікатор для читання елементів. Це name
просто ім'я, щоб користувач міг бачити ім'я елемента, я думаю.
Приклад:
<h1 id="heading">text</h1>
<script>
document.getElementById("heading"); //Reads the element that has the id "heading".
</script>
//You can also use something like this:
document.getElementById("heading").value; //Reads the value of the selected element.
Це корисно? Повідомте мене, якщо є якісь проблеми.
Немає буквальної різниці між ідентифікатором та іменем.
ім'я є ідентифікатором і використовується в запиті http, що надсилається браузером на сервер як ім'я змінної, пов'язане з даними, що містяться в атрибуті значення елемента.
Ідентифікатор з іншого боку - це унікальний ідентифікатор для веб-переглядача, клієнта та JavaScript. Отже, формі потрібен ідентифікатор, а його елементам потрібне ім’я.
id більш конкретно використовується при додаванні атрибутів до унікальних елементів. У методах DOM Id використовується в Javascript для посилання на конкретний елемент, на який потрібно виконати вашу дію.
Наприклад:
<html>
<body>
<h1 id="demo"></h1>
<script>
document.getElementById("demo").innerHTML = "Hello World!";
</script>
</body>
</html>
Те ж саме можна досягти за атрибутом name, але бажано використовувати id у формі та назви для малих елементів форми, таких як вхідний тег або тег вибору.