首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从具有相同名称的复选框数组中单击jQuery复选框

从具有相同名称的复选框数组中单击jQuery复选框
EN

Stack Overflow用户
提问于 2015-11-30 20:28:29
回答 1查看 42关注 0票数 0

我有一个剃刀局部视图(ASP.NET MVC),我有一组预验证,用于设置许多复选框的状态。

虽然正常的功能是可以的,但我真的想只捕获对一个特定复选框(而不是整个复选框)的点击,并执行一个´$.post(...)‘调用。

我如何才能做到这一点?这有可能吗?

这是我的局部视图的一部分:

代码语言:javascript
复制
    <div class="ukejuni">
    @{
        DateTime thisWeek = (DateTime)ViewData["thisWeek"];
        int thisWeekNumber = DateTimeExtender.WeekOfYearIso8601(thisWeek);
        int year = thisWeek.Year;
        string chkValue = thisWeekNumber + ";" + year;
    }
    Uke @Html.Raw(thisWeekNumber.ToString())
    @{
        switch ((DeliveryWeekType)Model.ba.delivery_week_type)
        {
            case DeliveryWeekType.EvenWeek:
                if (BusinessWeek.IsEvenWeek(thisWeekNumber)
                    && (Model.ba.deviations.Where(deviation =>
                        deviation.agreement_id == Model.ba.agreement_id
                        && deviation.week_nr == thisWeekNumber
                        && deviation.year == year
                        && deviation.delivery.HasValue
                        && (bool)deviation.delivery == true)
                    .FirstOrDefault() == null)
                )
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" checked="checked" value="@chkValue" />
                }
                else
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" value="@chkValue" />
                }
                break;
            case DeliveryWeekType.OddWeek:
                if (!BusinessWeek.IsEvenWeek(thisWeekNumber)
                       && (Model.ba.deviations.Where(deviation =>
                           deviation.agreement_id == Model.ba.agreement_id
                           && deviation.week_nr == thisWeekNumber
                           && deviation.year == year
                           && deviation.delivery.HasValue
                           && (bool)deviation.delivery == true)
                       .FirstOrDefault() == null)
                   )
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" checked="checked" value="@chkValue" />
                }
                else
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" value="@chkValue" />
                }
                break;
            default:
                if (Model.ba.deviations.Where(deviation =>
                    deviation.agreement_id == Model.ba.agreement_id
                    && deviation.week_nr == thisWeekNumber
                    && deviation.year == year
                    && deviation.delivery.HasValue
                    && (bool)deviation.delivery == true)
                    .FirstOrDefault() == null)
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" checked="checked" value="@chkValue" />
                }
                else
                {
                    <input class="leveringicon" type="checkbox" name="chkDelivery" value="@chkValue" />
                }
                break;
        }
}
</div>

这是我用来捕获(并写入控制台)复选框的值的脚本:

代码语言:javascript
复制
 $(document).ready(function () {
    $("input[name='chkDelivery']").change(function (e) {
        var values = $(this).val().split(';');
        console.log(values);

        if ($(this).is(':checked'))
        {
            @*$.post('@Html.Action("ChangeWeekDelivery")', {week: values[0], year: values[1], checkedState: true }, function () {

            });*@
            }
    });
});

在控制台输出中,我将得到8个具有相同输出的条目(8是屏幕上复选框的数量):

代码语言:javascript
复制
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]

那么,如何将捕获事件限制为单个项目呢?我尝试使用“$(e.target)”,但结果仍然是一样的。

诚挚的问候

EN

回答 1

Stack Overflow用户

发布于 2015-11-30 23:12:36

解决了。

问题是我把javascript代码放在局部视图中。一旦我把JS放在主视图上,一切都很完美。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33998705

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档