2010-11-09 7 views
0

Je dois utiliser des éléments de formulaire générés avec des ID dans deux parties du site.validation W3C double ID php

le problème est ID de sont doublés et W3C montre des erreurs

est-il un moyen de ommettre ce problème?

+1

changez les ID? – Gordon

+0

Quelle est l'erreur exacte? – sanders

+0

ID doit être le même, l'erreur est ID doit être unique – miojamo

Répondre

1

Y at-il une raison particulière pour laquelle le même ID doit être généré plusieurs fois? Pouvez-vous simplement, si nécessaire, répliquer une partie spécifique de l'ID pour les deux et ajouter un identifiant unique supplémentaire? La partie pertinente peut ensuite être extraite plus tard. Ainsi, par exemple, préfixez l'ID avec le nom de la page/fiche sur laquelle l'élément est/in. Cela dit, il semble qu'il y ait un problème de méthodologie et d'approche ici, y a-t-il une raison spécifique pour laquelle vous ne pouvez pas avoir des identifiants différents?

Voir ici pour plus d'informations: http://www.w3.org/TR/html4/struct/global.html#h-7.5.2

+0

Il est de la même forme un est placé à l'intérieur du module et deuxième composant à l'intérieur. Le module est utilisé pour affiner la recherche. Les identifiants sont utilisés pour jquery – miojamo

2

Attribuer un identifiant unique à chaque élément ou utiliser l'attribut name.

0

Veuillez vous reporter au official W3C specs for the id and class attributes. Citant:

Définition des attributs

id = name [CS]
Cet attribut attribue un nom à un élément. Ce nom doit être unique dans un document.

class = cdata-list [CS]
Cet attribut attribue un nom de classe ou un ensemble de noms de classe à un élément. N'importe quel nombre d'éléments peut être assigné le même nom de classe ou noms. Les noms de classes multiples doivent être séparés par des espaces blancs.

Comme vous pouvez le voir, l'ID peut ne pas être le même. Le validateur n'acceptera rien d'autre. Ce n'est pas négociable. Si vous souhaitez créer un balisage valide, vous devez modifier les ID pour qu'ils soient uniques. Aussi simple que cela. La seule façon de contourner ceci est d'utiliser votre propre DTD pour valider par rapport à celle qui ne nécessite pas d'attributs ID uniques. Bien sûr, il ne sera pas HTML mais MiojamoML et vous devez le servir en tant que tel et vous allez probablement rencontrer un certain nombre de bizarreries dans les différents navigateurs alors et ce n'est pas possible de le faire, mais c'est comme ça. Au moins si vous voulez le faire correctement.

Notez que si votre objectif est d'avoir des identifiants nommés sur les éléments de formulaire pour la soumission de formulaire, vous devez utiliser le input name attribute à la place. Cet attribut ne doit pas nécessairement être unique.

0

N'utilisez pas d'identifiant si ce n'est pas nécessaire. Essayez de les obtenir en utilisant des noms et des classes.