L'Élément HTML5 "légende" se produit trop peu de temps
J'ai la Vue suivante, en MVC et j'obtiens le message d'avertissement: Validation (HTML5): Element 'legend' occurs too few times
@model Berwin.Models.ViewModels.UserViewModel
@{
ViewBag.Title = "Press";
}
<h2>Press Area</h2>
@using (Html.BeginForm("Register", "PressController", FormMethod.Post))
{
<fieldset>
@Html.TextBoxFor(model => model.FullName)
</fieldset>
<fieldset>
@Html.TextBoxFor(model => model.Company)
</fieldset>
<fieldset>
@Html.TextBoxFor(model => model.EmailAddress)
</fieldset>
<fieldset>
@Html.CheckBoxFor(model => model.JoinMailingList)
</fieldset>
}
Voudrais savoir pourquoi je reçois cet avertissement et ce que je dois faire pour résoudre ce problème.
J'ai présenté cela comme un bug.. et il devrait être corrigé dans une prochaine version de VS: connect.microsoft.com/VisualStudio/feedback/details/782966/...
OriginalL'auteur ediblecode | 2012-03-07
Vous devez vous connecter pour publier un commentaire.
Selon le HTML 5 spec, le
<legend>
balise n'est pas un élément requis dans un<fieldset>
.Docs: http://www.w3.org/TR/html5/forms.html#the-legend-element
Dans votre cas, c'est juste un avertissement fourni par Visual Studio ou un plugin. Ses pas nécessaire, et il peut être un moyen pour supprimer l'avertissement sous Outils - Options - Editeur de Texte - HTML - de la Validation. Ici, vous pouvez également changer la cible de votre validation (HTML 5, XHTML 1, etc)
ha ha un autre -1 avec pas de commentaire, vous les gars sont un voyage. J'ai peut-être tort, mais je suis juste en citant la sorcière spec réponses à la question pourquoi les OP pourraient recevoir un avertissement lors de l'être validé par rapport à elle.
Je ne peux pas vous débarrasser de l'avertissement. J'ai essayé plusieurs combinaisons ...HTLM de Validation.
Pour ceux qui cherchent à mettre à jour VS pour valider correctement le
<fieldset>
tag voir ma réponse stackoverflow.com/a/12912876/834431OriginalL'auteur
Pour empêcher Visual Studio incorrectement vous avertit que le
"Element 'legend' occurs too few times"
vous devez corriger Visual Studio HTML et XHTML fichiers de validation.Contre la volonté de traiter le
<legend>
balise optionnelle à l'intérieur d'un<fieldset>
tag (selon les spécifications).Pour ce faire, il y a deux fichiers à modifier:
html_5.xsd
etxhtml_5.xsd
. Pour VS2010 ceux-ci sont trouvés dans (par exemple):C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\schemas\html\
Mesures à prendre:
Fermez Visual Studio
À l'aide d'un éditeur de texte, ouvrez le fichier
html_5.xsd
trouvent dans le dossier ci-dessus.Recherchez la ligne suivante:
(remarque il y a deux lignes qui sont similaires, la première est correcte, la deuxième doit être modifié).:
Modifier la ligne à lire:
Enregistrer le fichier
Répétez le processus pour le fichier
xhtml_5.xsd
qui est dans le même dossierMaintenant, démarrez Visual Studio et afficher votre fichier HTML5 - l'avertissement aura disparu.
J'espère que ça aide les autres, et j'espère que le .les fichiers xsd sera corrigé dans une future mise à jour.
Mise à JOUR:
La ligne vous avez besoin de trouver peut-être:
Si oui, changer le
minOccurs="1"
attributminOccurs="0"
+1. Comme vous l'avez dit à juste titre que la
legend
est facultatif et que Visual Studio est de déclaration incorrecte. Je sais que l'on a accepté de répondre à travaillé autour de Visual Studio problème en ajoutant simplement une légende, mais en fin de compte, pourquoi ajouter un élément facultatif, vous n'avez pas besoin? Dans ce cas, je pense que la bonne solution est d'ignorer le VS avertissement comme il est incorrect ou que vous l'avez indiqué, "fix" VS. Je ne sais pas pourquoi quelqu'un aurait downvoted.+1 pour montrer comment réparer Visual Studio. La ligne que j'avais à changer légèrement différents: <xsd:element ref="légende" minOccurs="0" maxOccurs="1" vs:firstchild="true" />
Même chemin pour MSVS2012
Fonctionne aussi pour les VS web edition (2012).
OriginalL'auteur
Légende est facultatif dans un Fieldset.
Mais essayez ceci, pour se débarrasser de l'avertissement:
Quelqu'un me corrige si j'ai tort. Mais oui, c'est comme un en-tête pour le fieldset.
Ce n'est pas correct, la légende n'est PAS nécessaire dans la spec HTML5
mon mauvais. Vous êtes correct. Va changer ma réponse
J'ai également ajouté les instructions ci-dessous comment faire pour modifier rapidement la .Les fichiers XSD pour corriger Visual Studio validation. L'espoir qui aide les autres.
OriginalL'auteur
Q: Pourquoi êtes-vous de cet avertissement? A: Parce que le Visual Studio HTML 5 validateur croit à tort vous avez besoin d'un
legend
dans tous lesfieldset
. Lelegend
"représente une légende" pour les autres éléments de formulaire et des étiquettes dans unefieldset
. Il est facultatif.Comme une parenthèse, un
fieldset
est utilisé pour regrouper des contrôles de formulaire ensemble. Depuis chacun de vosfieldset
s ne contient qu'un seul élément de formulaire, ils ne sont pas vraiment "groupement" quoi que ce soit. Pourquoi ne pas faire loin avec eux tous? Pour le court formulaire, vous avez montré, je ne vois pas l'avantage pour le regroupement d'une partie de ces entrées d'un formulaire séparé des autres. Unfieldset
fait beaucoup plus de sens quand vous avez la forme individuelle des éléments qui ne se tiennent pas sur leurs propres et doivent être regroupés. Exemple:Q: Que devez-vous faire pour résoudre ce problème? R: je ne pense pas qu'il besoins de fixation. Mais si vous voulez errants message du validateur pour s'en aller, ajouter un
legend
élément que le premier enfant de chaquefieldset
.OriginalL'auteur
La façon dont j'ai géré cela était simplement de masquer la légende:
OriginalL'auteur
Où en êtes-vous de validation de cette? La légende élément est facultatif:
http://dev.w3.org/html5/spec/Overview.html#the-fieldset-element
L'élément legend est un titre pour les champs dans le jeu de champs et utilisés comme suit
Qui rend une boîte comme ce
Je sais que vous êtes en utilisant un Rasoir pour créer votre point de vue, mais vous n'avez pas dit si c'était Visual Studio vous donnant l'erreur ou l'autre en ligne validateur comme le W3C. Je proposerais que Visual Studio validateur est faux si il pense que la légende est nécessaire.
OriginalL'auteur