2010-02-18 5 views
26

Ist es eine akzeptable Praxis, mehrere HTML-Formulare auf einer Seite mit Eingabefeldern zu haben, die das gleiche Namensattribut haben? Zum Beispiel ist die Seite eine Auflistung aller Spieler enthält und Benutzer für den besten Spieler so neben jeder Spielerkarte dort erlaubt zu wählen ist diese Form:Mehrere Formulare mit Eingabefeldern mit demselben Namensattribut? Gut oder schlecht?

<form class="vote-for-player" enctype="application/x-www-form-urlencoded" method="post" action="/index/vote-for-best-player"> 
    <input type="hidden" name="player_id" value="1" /> 
    <input type="submit" name="vote_for_player" value="Vote" class="input-submit" /> 
</form> 

Wert Attribut des verborgenen Eingabefeld ist für jeden Form natürlich.

Nehmen wir an, es gibt 20 Formen wie diese auf der Seite, also 20 Eingabefelder mit dem Namen "player_id". Wenn ich diese Seite durch HTML-Validator überlasse, ist sie sogar mit dem XHTML 1.0 Strict Doctype gültig. Aber ist dies eine akzeptable Praxis von Web-Standards oder Barrierefreiheitsperspektive?

Eine Sache, die ich sicher weiß, macht es die serverseitige Verarbeitung der Seite einfacher, da ich nur Wert aus einem POST-Feld namens player_id laden muss.

Antwort

14

Stimmen Sie mit der obigen Antwort überein. Der Name ist völlig in Ordnung und wird als Antwortparameter Ihres Formulars übergeben. Eine andere Geschichte wäre, wenn Ihre Eingabeelemente die gleiche ID hätten - einige Browser könnten Probleme haben, dom Ihres Dokuments zu durchlaufen.

Wieder denken Bündel von Radio-Buttons, in denen Benutzer Geschlecht usw. auswählen können Sie müssen denselben Namen haben (aber unterschiedliche IDs) ...

+0

In Bezug auf doppelte IDs: http://www.w3.org/TR/WCAG20-TECHS/F77. html und http://www.w3.org/TR/WCAG20-TECHS/H93 .html – danielnixon

4

Ja, es ist gültig, ich mache es die ganze Zeit.

2

ja das ist völlig in Ordnung .. in der Tat fühle ich mich persönlich, dass seine wirklich eine gute Praxis, dies zu tun, da es für Entwickler relativ relativ praktisch ist, mit relativ weniger Namen zu arbeiten, als mit einem Haufen von ihnen. Außerdem, wenn Elemente auf verschiedenen Formen sind, verursacht es keine Namensraumkollision in irgendeiner Weise seit dem Identifizieren von Elementen In js Name verwenden wir sowohl den Namen des Formulars als auch den Namen des Eingabefeldes, so dass es keine Probleme verursacht ...