Многократное нажатие флажка

0

Тег таблицы

<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;
            }
        });

мой флажок щелкнут, но он всегда показывает еще часть, что сообщение оповещения "Пожалуйста, выберите вариант",

  • 1
    у вас есть несколько chkbox на странице с идентификатором chkbox
  • 0
    да, но я установил флажки, показанные только предупреждающее сообщение
Показать ещё 4 комментария
Теги:
asp.net-mvc

1 ответ

1
Лучший ответ

Похоже, у вас есть несколько полей ввода в 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() {

Ещё вопросы

Сообщество Overcoder
Наверх
Меню