我在视图中有3个复选框。当选中其中任何一个时,我想将3
添加到名为cost
的javascript变量的值中。如果取消选中其中任何一个复选框,我想从3
的值中减去cost
。
目前,当选中或取消选中复选框时,我的代码总是会减去3
。如果选中复选框,如何添加3
?
HTML
<div class="panel-heading">Checkboxes</div>
<div id="chkbox" class="panel-body">
<div>
@Html.CheckBoxFor(m => m.IsT)
@Html.LabelFor(m => m.IsT, "T")
</div>
<div>
@Html.CheckBoxFor(m => m.IsS)
@Html.LabelFor(m => m.IsS, "S")
</div>
<div>
@Html.CheckBoxFor(m => m.IsR)
@Html.LabelFor(m => m.IsR, "R")
</div>
</div>
的jQuery
var cost = @Session["Cost"];
$('#chkbox').change(function (chk) {
debugger;
if ($(chk).prop("checked")){
cost = cost + 3;
} else {
cost = cost- 3;
}
$("#product").val(cost);
$("#spProduct").text(cost);
});
答案 0 :(得分:0)
<div>
的元素是$('#chkbox').change(function (chk) {
if ($(chk).prop("checked")){
,而不是复选框。当你使用
chk
checked
是事件,而不是元素(并且事件没有@Html.CheckBoxFor(m => m.IsT, new { @class = "mycheckbox" })
@Html.CheckBoxFor(m => m.IsS, new { @class = "mycheckbox" })
....
属性。)
为您的复选框添加一个类名,并将其用作选择器
$('.mycheckbox').change(function () {
if ($(this).is(':checked')) {
....
} else {
....
}
然后脚本变为
{{1}}