Spodziewam się następująco:Dlaczego program ASP.Net RadioButton i CheckBox renderuje się w obrębie zakresu?
<asp:CheckBox ID="CheckBox1" runat="server" CssClass="myClass" />
<asp:RadioButton ID="RadioButton1" runat="server" CssClass="myClass" />
<asp:TextBox ID="TextBox1" runat="server" CssClass="myClass" />
... do renderowania jak ten (z pewnymi atrybutami usuniętymi dla uproszczenia):
<input id="CheckBox1" type="checkbox" class="myClass" />
<input id="RadioButton1" type="radio" class="myClass" />
<input id="TextBox1" type="text" class="myClass" />
... gdy w rzeczywistości RadioButton
i CheckBox
zostanie zapakowany tagiem span
, a klasa CSS zostanie tam zastosowana.
<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" />
Czy istnieje ku temu powód i czy istnieje sposób, aby tego uniknąć? To sprawia, selektorów jQuery brzydki, ponieważ nie można złapać wszystkie z nich:
$("input.myClass")
prawda jest po prostu będzie:
$("input.myClass, span.myClass input")
... ale to jest brzydkie. Mógłbym napisać własny selektor, ale znowu nie tak elegancko, jak być powinien.
jak tylko $ (". MyClass")? – Hardwareguy
Nie jestem odpowiedzią, ale tylko współczuję - kiedy po raz pierwszy zacząłem pracę na platformie .NET kilka lat temu i używałem JS, aby sprawdzić wartość pola wyboru, spędziłem kilka godzin próbując ustalić, dlaczego moje wartości nie były alarmowanie. Zgadnij co - tagi span. Zawsze zastanawiałem się, dlaczego MS dodało nadmiarowe znaczniki dla radiobutonów i pól wyboru! – Dhana
@Hardwareguy Czasami będzie to zakres, a czasami będzie to wejście. To jest problem. $ ("input.myclass") może być trochę zbyt szczegółowe, ale $ (". myClass") dałoby ci ten sam ból głowy. – Mark