Селектор для флажка в скрипте MVC - PullRequest
0 голосов
/ 12 июня 2018

Добрый день, у меня есть вид с этим кодом

<ul id="check-list-box" class="list-group checked-list-box">

            @for (var i = 0; i < Model.RespuestasParaDetalleRespuesta.Count(); i++)
            {
                <li class="list-group-item" data-color="danger">
                    @Html.HiddenFor(model => model.Something[i].Id)
                    @Html.HiddenFor(model => model.Something[i].DetailId)
                    @Html.CheckBoxFor(model => model.Something[i].IsSelected,new { @class="test"})@Model.Something[i].SomeText
                </li>
            }
        </ul>

У меня также есть свой скрипт, который меняет каждый флажок свойства "флажок"

   $(function () {
        $('.list-group.checked-list-box .list-group-item').each(function () {
            var $widget = $(this),
                $checkbox = $('.test'), //I use this selector but is not a good one
                ....
                more settings
                };
            $widget.css('cursor', 'pointer')

            // Event Handlers
            $widget.on('click', function () {
                $checkbox.prop('checked', !$checkbox.is(':checked')); //changes propertie to checked
               ...more code
                ...more code
            });

Как вы можете видеть, сэтот код после того, как пользователь нажимает на элемент, функция пытается изменить свойства флажка на флажок или не отмечен.Однако я понял, что этот подход не работает, потому что, когда я нажимаю на один элемент, все флажки отмечены.

Идентификатор каждого флажка похож на следующий

Something_0__IsSelected , Something_1__IsSelected

что мне делатьсделать селектор $ checkbox более конкретным?спасибо

сложение Так выглядит мой вид, я бы хотел отметить каждый флажок, когда нажимаю на строку enter image description here

1 Ответ

0 голосов
/ 12 июня 2018

Ваш $checkbox = $('.test') устанавливает все флажки.Вам нужно установить только флажок в соответствующем элементе <li>

$('.list-group.checked-list-box .list-group-item').each(function () {
    // $(this) is the <li> element
    var $widget = $(this), 
    $checkbox = $(this).find('.test'), // change this
    ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...