имя JavaScript против идентификатора - PullRequest
7 голосов
/ 14 октября 2010

Насколько я знаю, есть два способа получить значение из текстового поля:

document.formName.textboxName.value;

или

document.getElementbyId('textboxId').value;

Как я понимаю, использование имени формы означало бы, что у меня меньшекод для записи, так как имя может использоваться для публикации данных и получения значения (кроме использования ajax).Например, если бы я просто писал с использованием стандартной формы, я бы использовал name для публикации, но я не могу использовать id?

, например, в php я бы использовал

$_POST['texboxName']; 

Если бы ягде иметь и ID в текстовом поле. Я не могу получить значение с помощью php?

Какой стандартный рекомендуемый способ сделать это, и является ли использование name дружественным для браузера?Ссылки, если возможно, пожалуйста, спасибо.

Ответы [ 5 ]

12 голосов
/ 14 октября 2010

Окончательное руководство в этом - спецификация HTML .

Вещи, которые там выделяются:

  • id действительно для любого элемента HTML,в то время как name применяется только к избранным (a, input, textarea и, возможно, нескольким другим).
  • Элемент inputtextarea) требует значение name устанавливается, если вы хотите, чтобы оно было отправлено.
4 голосов
/ 14 октября 2010

Атрибут name используется при отправке формы, т. Е. Для создания пары имя-значение, которая будет обрабатываться на сервере.Атрибут id используется для определения местоположения и элемента в DOM.Обычно имя используется только в элементах формы

Список литературы:

http://www.w3.org/TR/html401/interact/forms.html
http://www.w3schools.com/html/html_forms.asp

1 голос
/ 14 октября 2010

Я предпочитаю использовать идентификаторы, поскольку «функция» (т. Е. То, что вы пытаетесь достичь) вашего кода не связана с семантикой.Для меня .GetElementById ('myid') выделяется больше и более читабелен, чем просто разбросанный по коду "myid".Плюс вы можете легко переименовать элементы.Это моя стоимость 2р!

1 голос
/ 14 октября 2010

Я считаю хорошей практикой иметь имена и id для каждого элемента формы.Причина в том, что если вы хотите добавить метки или стилизацию с помощью таблиц (что вам следует делать), то имеет смысл иметь оба.

Что касается доступа к нему с помощью javascript: лучшим способом было быперейдите с идентификатором элемента, потому что если вы измените имя формы, все ломается.Это не происходит, когда вы используете идентификатор.

1 голос
/ 14 октября 2010

Я обычно использую оба. Как вы упомянули, name полезно для использования данных через JavaScript, а также после их отправки. Не стесняйтесь использовать дополнительные символы в name по мере необходимости: я склонен использовать [] s в моих именах, когда ввод будет использоваться в массиве на стороне сервера.

Атрибут id может использоваться для доступа к элементу через JS / DOM. Он также используется атрибутом <label> for. Например, если вы сделаете это с флажками, нажатие на метку приведет к установке флажка. Это большой плюс для удобства использования.

...