Получить значения флажка, используя Ajax с $ .each - PullRequest
0 голосов
/ 07 декабря 2018

Небольшой вопрос, где я думаю, что я очень близок к цели.

Я пытаюсь получить значение всех флажков, поступающих из массива, которые проверены, чтобы отправить эти значения моему контроллеру,(Это позволяет пользователю выбирать или не выбирать определенные опции).

Я почти на месте, я просто не могу получить нужное значение в моей таблице int.

Я хотел бы поставить intв этом массиве int значение '@ stuff.SubEvent_Zkp', но в настоящее время .val () ставит 0 в качестве значения во всех флажках, отправляемых моему контроллеру (а также в вызове ajax).

Я все еще указываю, что# stuff.SubEvent_Zkp имеет уникальное значение.

Я пробовал с данными [0], а также с attr (), но это, похоже, не работает.

Таблица с флажками

                <tbody>
                    @foreach (var stuff in Model._Registration_SubEvents)
                    {
                        <tr>
                            <td class="col-md-3">@stuff.SubEvent_Name</td>
                            <td class="col-md-1">@stuff.SubEvent_Date.ToShortDateString()</td>
                            <td>@stuff.SubEvent_Fee</td>
                            <td>@stuff.SubEvent_Note</td>
                            <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" id="CheckSub" value="@stuff.SubEvent_Zkp" /></td>
                        </tr>
                    }
                </tbody>

Код для помещения значений @ stuff.SubEvent_Zkp в любимый массив

    $.each($("input[name='CheckSub']:checked"), function () {
        favorite.push($(this).val());
    });

И я добавляю избранное в данные (вajax call)

data: { Id: id, Status: status,Checkin: checkin, Checkout: checkout, Cost: cost, Terms: check1, Info: check2, values: favorite },

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Вот простой пример использования, который я собрал, используя атрибуты данных, которые успешно извлекают все значения атрибутов данных из флажков и помещают их в массив (здесь я использую атрибуты данных, потому что они, кажется, более точно представляют то, что вы пытаетесьиспользуйте атрибут value для):

         <table>
            <tr>
                <td class="col-md-3">name</td>
                <td class="col-md-1">date</td>
                <td>fee</td>
                <td>note</td>
                <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="1"  /></td>
            </tr>
            <tr>
                <td class="col-md-3">name</td>
                <td class="col-md-1">date</td>
                <td>fee</td>
                <td>note</td>
                <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="2" /></td>
            </tr>
        </table>

script:

var array = [];
$.each($("input[name='CheckSub']"), function () {
    array.push($(this).data("checksub"));
});
//array now contains values 1 and 2

, чтобы строка таблицы выглядела так:

<tr>
    <td class="col-md-3">@stuff.SubEvent_Name</td>
    <td class="col-md-1">@stuff.SubEvent_Date.ToShortDateString()</td>
    <td>@stuff.SubEvent_Fee</td>
    <td>@stuff.SubEvent_Note</td>
    <td><input style=" height:17px; width:17px; margin-top:5px; margin-left:22px" type="checkbox" name="CheckSub" data-checksub="@stuff.SubEvent_Zkp"/></td>
</tr>

Кроме того, убедитесь, чтоотображаемые значения на вашей странице не все 0!

0 голосов
/ 07 декабря 2018

Идентификатор должен быть уникальным.Попробуйте следующее:

... id="@stuff.SubEvent_Zkp" value="@stuff.SubEvent_Zkp"... 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...