Geralmente, supõe-se que o nome seja sempre substituído pelo id . Isso é verdade, até certo ponto, mas não para campos de formulário e nomes de quadros , na prática. Por exemplo, com elementos de formulário, o name
atributo é usado para determinar os pares nome-valor a serem enviados para um programa do lado do servidor e não deve ser eliminado. Browsers do not use id in that manner
. Para garantir a segurança, você pode usar os atributos name e id nos elementos do formulário. Então, escreveríamos o seguinte:
<form id="myForm" name="myForm">
<input type="text" id="userName" name="userName" />
</form>
Para garantir a compatibilidade, é recomendável ter valores de atributo de nome e ID correspondentes quando ambos são definidos. No entanto, tenha cuidado - algumas tags, principalmente botões de opção, devem ter valores de nome não exclusivos, mas requerem valores de ID exclusivos. Mais uma vez, isso deve referir que id não é simplesmente um substituto para o nome; eles são diferentes em propósito. Além disso, não desconsidere a abordagem de estilo antigo; uma análise profunda das bibliotecas modernas mostra esse estilo de sintaxe usado para fins de desempenho e facilidade às vezes. Seu objetivo deve sempre ser a favor da compatibilidade.
Agora, na maioria dos elementos, o atributo name foi descontinuado em favor do atributo de identificação mais onipresente. No entanto, em alguns casos, particularmente formar campos ( <button>
, <input>
, <select>
e <textarea>
), as vidas nome do atributo no porque continua a ser necessário para definir o par nome-valor para o envio do formulário. Além disso, descobrimos que alguns elementos, principalmente quadros e links, podem continuar a usar o atributo name porque geralmente é útil para recuperar esses elementos pelo nome.
Há uma clara distinção entre id e nome. Muitas vezes, quando o nome continua, podemos definir os mesmos valores. No entanto, o id deve ser único e, em alguns casos, o nome não deve - pense nos botões de opção. Infelizmente, a exclusividade dos valores de ID, apesar de detectada pela validação de marcação, não é tão consistente quanto deveria. A implementação de CSS nos navegadores estilizará objetos que compartilham um valor de ID; portanto, não podemos detectar erros de marcação ou estilo que possam afetar nosso JavaScript até o tempo de execução.
Isso foi retirado do livro JavaScript- The Complete Reference by Thomas-Powell