Meilleure Pratique: l'Accès à des éléments de formulaire en HTML l'attribut id ou name?

Que tout assaisonné développeur JavaScript sait, il y a beaucoup (trop) de trouver des moyens de faire la même chose. Par exemple, disons que vous avez un champ de texte comme suit:

<form name="myForm">  
    <input type="text" name="foo" id="foo" />

Il y a plusieurs façons d'accéder à ce en JavaScript:

[1]  document.forms[0].elements[0];
[2]  document.myForm.foo;
[3]  document.getElementById('foo');
[4]  document.getElementById('myForm').foo;
     ... and so on ...

Méthodes [1] et [3] sont bien documentés dans la Mozilla Gecko de la documentation, mais aucun n'est idéal. [1] est juste trop générales pour être utiles et [3] nécessite à la fois un id et un nom (en supposant que vous serez la publication des données à un serveur côté de la langue). Idéalement, il serait préférable d'avoir seulement un attribut id ou un nom d'attribut (ayant à la fois est un peu redondant, surtout si l'id n'est pas nécessaire pour tout le css, et augmente le risque de fautes de frappe, etc).

[2] semble être le plus intuitif et il semble être largement utilisé, mais je ne l'ai pas vu, il est référencé dans le moteur Gecko de la documentation et je suis inquiet à propos de deux attaquants de la compatibilité et de la croix-compatibilité entre navigateurs (et bien sûr, je veux être comme conforme aux normes du possible).

Alors, quelle est la meilleure pratique ici? Quelqu'un peut-il point à quelque chose dans le DOM de la documentation ou de spécification du W3C qui pourrait résoudre ce problème?

Remarque, je suis particulièrement intéressé par un non-bibliothèque solution (jQuery/Prototype).

  • Je suppose que cela se résume à est que je suis à la recherche de la plus conforme aux normes du chemin pour accéder à un élément de formulaire à l'aide de l'attribut de nom de...
  • "ayant à la fois est un peu redondant, surtout si l'id n'est pas nécessaire pour tout le css, et augmente le risque de fautes de frappe" -- ID est nécessaire pour une utilisation efficace des étiquettes. Pas seulement CSS.
  • Parfois, il y a plusieurs formulaires sur une page web et attributs id peuvent entrer en collision.
InformationsquelleAutor seth | 2010-03-12