jQuery从具有相同名称的复选框数组中单击复选框
我有一个Razor部分视图ASP.NET MVC,在该视图上我有一组预验证,用于设置许多复选框的状态 虽然正常运行正常,但我真的希望只捕获一个特定的复选框,而不是整个复选框集,并执行´$.post…´调用 我怎样才能做到这一点?这可能吗 以下是我的部分观点: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
<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"]