Pourquoi ne ASP.Net RadioButton et la Case à cocher rendre à l'intérieur d'un Span?

Je m'attends à ce:

<asp:CheckBox    ID="CheckBox1"    runat="server" CssClass="myClass" />
<asp:RadioButton ID="RadioButton1" runat="server" CssClass="myClass" />
<asp:TextBox     ID="TextBox1"     runat="server" CssClass="myClass" />

...pour les rendre comme ça (certains attributs supprimés pour des raisons de simplicité):

<input id="CheckBox1"    type="checkbox" class="myClass" />
<input id="RadioButton1" type="radio"    class="myClass" />
<input id="TextBox1"     type="text"     class="myClass" /> 

...alors qu'en fait, le RadioButton et CheckBox sont enveloppés avec un span et étiquette de la classe CSS est appliqué là.

<span class="myClass"><input id="CheckBox1"    type="checkbox" /></span> 
<span class="myClass"><input id="RadioButton1" type="radio"    /></span> 
<input type="text" id="TextBox1" class="myClass" /> 

Est-il une raison pour cela, et est-il un moyen de l'éviter? Il fait des sélecteurs jQuery laid puisque vous ne pouvez pas toutes les attraper avec:

$("input.myClass")

Accordé, il va juste:

$("input.myClass, span.myClass input")

...mais que c'est laid. Je pourrais écrire mon propre sélecteur, mais encore une fois pas aussi élégant comme il se doit.

  • comment combat seulement $(".maclasse")?
  • Pas de réponse, mais juste se consolant - quand j'ai commencé à travailler sur le .NET plate-forme quelques années en arrière et a été en utilisant les JS pour trouver la valeur d'une case à cocher, j'ai passé quelques heures à essayer de comprendre pourquoi mes valeurs n'étaient pas les alertes. Devinez quoi - les balises span. Je me suis toujours demandé pourquoi MS ajout de balises redondantes pour leurs composants radiobutton et cases à cocher!
  • Parfois, ce sera la durée et parfois, ce sera l'entrée. C'est le problème. $("input.maclasse") pourrait être un peu plus spécifique, mais $(".maclasse") serait de vous donner le même mal de tête.
  • Si vous utilisez la Case à cocher.Propriété de texte, une étiquette est ajoutée. La durée sera alors entourent à la fois, et les styles s'applique à la fois. C'est la raison pour laquelle les environs span.
  • Probablement à cause de choses comme ceci: stackoverflow.com/questions/7398462/...
  • Pour l'asp:case à cocher, j'ai remarqué que la durée est également ajouté lorsque vous utilisez le CssClass de la propriété.

InformationsquelleAutor Mark | 2009-06-15