Я знаю, что вопрос сейчас закрыт, но я только что столкнулся с той же проблемой и хочу добавить найденное решение, которое может пригодиться в будущем для подобных проблем.
При добавлении ASP-кода, например:
<asp:CheckBox runat="server" Text="Checkbox XYZ" CssClass="test" ID="cb1" />
проблема в том, что <asp:CheckBox ...>
- это не элемент управления html, это просто что-то ASP , созданное из извращенного ума какого-то придурка , поэтому браузер получит что-то еще.
Браузер получит что-то вроде:
<span class="test">
<input id="garbageforYourId_cb1" type="checkbox" name="garbage$moregarbage$cb1"/>
<label for="evenMoreGarbage_cb1">Checkbox XYZ</label>
</span>
Одно из многих возможных решений:
Браузер получает промежуток, который содержит «флажок» ввода и метку для него с вашим текстом. Поэтому мое решение для этого было бы что-то вроде:
$('.test > :checkbox').click(function() {
if ($(this).attr("checked")) {
alert("checked!!!");
} else {
alert("non checked!!!");
}
});
Что там произошло? Этот селектор $('.test > :checkbox')
означает: найдите элементы с классом «test» и установите любой флажок, который он содержит.