É redundante para usar o atributo “nome” para campos de entrada em desenvolvimento web moderna?

StackOverflow https://stackoverflow.com/questions/1813085

  •  06-07-2019
  •  | 
  •  

Pergunta

Tenho notado um monte de sites com a forma (s) que contém campos de entrada cujo atributo "nome" é especificado, mesmo que ele não é usado para denominar ou propósito scripting!

Além disso, de acordo com a o documento oficial sobre a forma no documento HTML ...

name = cdata [CI] nomes Este atributo o elemento de modo que ele pode ser encaminhado a partir de folhas ou scripts de estilo. Nota. Este atributo foi incluído para compatibilidade com versões anteriores. Formulários deve usar o atributo id para identificar os elementos.

Então, minha pergunta é: deve esse atributo usado apenas para pentear e para fins de script

Agradecemos antecipadamente!


EDIT: Em particular, poderia ser evitado o uso deste atributo com campos de entrada do tipo "texto" (quando não há nenhum estilo ou fins de script)?


EDIT 2: Assim, você tem quase confirmou o que eu tinha pensado: o atributo "name" será depreciado em outras especificações HTML / padrões !!! ??? Ele ainda está "vivo" única for backwards compatibility ... em alguns casos podem ser evitados, mas ainda existem alguns casos (como o botão de rádio) onde é necessário!

Foi útil?

Solução

O atributo name é a notação para elementos específicos de referência no âmbito de uma página web através da não-DOM Javascript:

document.forms['your_form'].elements['aa']

O atributo id para as necessidades elemento a ser definido com o mesmo valor para o seguinte para o trabalho:

document.getElementById('aa')

O meu entendimento é que quando Netscape criado Javascript, é usado o atributo name. A especificação HTML no entanto decidiu ir com id, mas manteve name para compatibilidade com versões anteriores. IME, usando o atributo name foi necessário para 6 apoio Internet Explorer porque o motor de JavaScript no IE não iria ler o atributo id -. Apenas o name embora ambos foram definidos

... poderia ser evitado o uso deste atributo com campos de entrada do tipo "texto" (quando não há nenhum estilo ou fins de script)?

Se você não tem qualquer javascript ligado aos campos de texto, sim -. Que seria desnecessário

Outras dicas

Eu acho que você vai encontrar quase todos os sites terão entradas com o atributo nome. Eu não vê-lo indo embora tão cedo.

O atributo name especifica um nome para um elemento de entrada.

O atributo nome é usado para identificar formar os dados depois de ter sido submetido para o servidor, ou formulário de referência dados usando JavaScript no cliente lado.

Nota: Somente os elementos de formulário com um nome atributo terão seus valores passou ao enviar um formulário.

fonte

Existem diferenças entre a ID e nome atributos. Um ID é aplicável a qualquer elemento no documento HTML, enquanto um nome é relevante apenas para campos de entrada. Um ID é exigido por padrão a ser único em uma página (embora não necessariamente seguido em todas as páginas da web). Diferentes elementos podem ter mesmo nome embora. Um caso particular vem em mente é o botão de rádio. Todos os botões de rádio deve ter o mesmo nome e o valor do selecionado será dado de volta para o formulário. Assim você pode ver que o nome ainda tem significado no processamento de formulários HTML.

Eu tenho visto em sistemas automáticos de geração de formulário HTML (como zope.formlib ), que ID e nome de atributos ambos são gerados automaticamente para diferentes tipos de widgets de entrada. Tais sistemas automáticos de geração de forma cuidar adequadamente de todas as nuances associados com diferenças de atributos id e name. Eles também fazer coisas como gerar um elemento de entrada escondida para cada elemento de caixa de seleção. Então, sempre que possível, eu tento usar algum tipo de mecanismo de geração de forma automática HTML e deixá-lo cuidar das questões envolvidas.

Esta é uma questão de idade, mas é importante notar que muitos frameworks JS modernos contam com o atributo name. Em particular, serialize função do jQuery:

Para o valor de um elemento de formulário para ser incluído na string serializada, o elemento deve ter um atributo nome.

Se qualquer coisa, name parece estar fazendo um retorno.

É importante notar também que o atributo name é útil porque tem um pouco mais "escopo" do que id. id deve ser exclusivo dentro de uma página, mas o mesmo name pode ser usado várias vezes. Isto o torna útil quando você tem várias formas na mesma página, ou quando você quer fazer referência a um grupo de caixas de seleção, etc.

navegadores IIRC mais velhos usar o nome no lugar do ID, que é por isso que é normalmente incluídos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top