Тег таблицы
<tr>
<td>
<input id="chkbox" name="chkbox" type="checkbox" class="Checkbox" value = <%: item.field1 %> />
</td>
<td>
<%: item.field1 %>
</td>
<td>
<%: item.field2 %>
</td>
</tr>
Мой JQuery
$("#Free").click(function fn() {
if ($('#chkbox').is(':checked')) {
return true;
}
else {
alert("Please Select option");
return false;
}
});
мой флажок щелкнут, но он всегда показывает еще часть, что сообщение оповещения "Пожалуйста, выберите вариант",
Похоже, у вас есть несколько полей ввода в DOM с id="chkbox"
. Это приводит к недействительной разметке, и ваш селектор $('#chkbox')
всегда возвращает первый элемент.
Вместо этого вы можете использовать имя класса:
<input name="chkbox" type="checkbox" class="Checkbox" value = <%: item.field1 %> />
а потом:
$("#Free").click(function() {
if ($('.Checkbox:checked').length > 0) {
return true;
}
else {
alert("Please Select option");
return false;
}
});
Также из вашего вопроса не совсем понятно, что это #Free
, будь то одна кнопка или у вас есть такие кнопки в каждой строке таблицы.
Если это одна кнопка, тогда предыдущий код должен быть в порядке → он гарантирует, что установлен хотя бы один флажок.
Если у вас много таких кнопок, вы должны использовать для них селектор классов (после присвоения каждой кнопке одного и того же class
), а затем:
$(".Free").click(function() {
var checkbox = $(this).closest('tr').find('.Checkbox');
if (checkbox.is(':checked')) {
return true;
}
else {
alert("Please Select option");
return false;
}
});
Также обратите внимание, что у вас был некорректный javascript в событии.click:
.click(function fn() {
который я исправил для использования анонимной функции:
.click(function() {
chkbox
на странице с идентификаторомchkbox