Я бы ожидал этого:
<asp:CheckBox ID="CheckBox1" runat="server" CssClass="myClass" />
<asp:RadioButton ID="RadioButton1" runat="server" CssClass="myClass" />
<asp:TextBox ID="TextBox1" runat="server" CssClass="myClass" />
... для рендеринга следующим образом (некоторые атрибуты удалены для простоты) :
<input id="CheckBox1" type="checkbox" class="myClass" />
<input id="RadioButton1" type="radio" class="myClass" />
<input id="TextBox1" type="text" class="myClass" />
... когда на самом деле RadioButton
и CheckBox
обертываются тегом span
и там применяется класс CSS.
<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" />
Есть ли причина для этого и есть ли способ избежать этого? Это делает селекторы jQuery уродливыми, поскольку вы не можете поймать их все с помощью:
$("input.myClass")
Конечно, это просто:
$("input.myClass, span.myClass input")
... но это безобразно. Я мог бы написать свой собственный селектор, но опять же не так элегантно, как следовало бы.