Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery从具有相同名称的复选框数组中单击复选框_Jquery_Asp.net Mvc_Checkbox - Fatal编程技术网

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

jQuery从具有相同名称的复选框数组中单击复选框,jquery,asp.net-mvc,checkbox,Jquery,Asp.net Mvc,Checkbox,我有一个Razor部分视图ASP.NET MVC,在该视图上我有一组预验证,用于设置许多复选框的状态 虽然正常运行正常,但我真的希望只捕获一个特定的复选框,而不是整个复选框集,并执行´$.post…´调用 我怎样才能做到这一点?这可能吗 以下是我的部分观点: <div class="ukejuni"> @{ DateTime thisWeek = (DateTime)ViewData["thisWeek"]; int thisWeekN

我有一个Razor部分视图ASP.NET MVC,在该视图上我有一组预验证,用于设置许多复选框的状态

虽然正常运行正常,但我真的希望只捕获一个特定的复选框,而不是整个复选框集,并执行´$.post…´调用

我怎样才能做到这一点?这可能吗

以下是我的部分观点:

    <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>
在控制台输出中,我将获得8个具有相同输出的条目8是屏幕上的复选框数:

["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
那么,如何将捕获事件限制为单个项目?我尝试过使用´$e.target',但结果仍然是一样的

致以最诚挚的问候

已解决

问题是我把javascript代码放在了一个局部视图中。
一旦我把JS放在主视图上,一切都进行得很顺利。

你真的应该把这个逻辑放在你的视图之外,放到控制器中。@JamieR我在这里添加了这个逻辑,因为我将一组数据返回到视图中,然后将它传输到这个局部视图中。我最初没有提到这个代码是来自一个局部视图。我想说的是你应该使用它该视图的自定义视图模型。视图中不应该有带有LINQ查询的if语句。结果应该是在视图模型中,这与实际问题无关,只是一个提示。@JamieR这只是其中之一,因为你可以,并不意味着你应该做一些事情。。我真的只是想尽量减少模型的数量
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]
["51", "2015"]