我有一个包含多个复选框,父复选框和子复选框的页面。有两个父复选框:
@model MyProject.Models.MyModel
@Html.CheckBoxFor(m => m.parentBox, new { id="parent",@disabled = "disabled" })
<br/>
@Html.CheckBox("_Commun", new { id = "common", @disabled = "disabled" })
我的模型分为两部分:
public class MyModel
{
public bool parentBox { get; set; }
public List<CheckBoxModel> serviceCheckBoxes { get; set; }
}
public class CheckBoxModel
{
public string name { get; set; }
public bool selected { get; set; }
}
现在我的孩子复选框如下:
@for (var i = 0; i < Model.serviceCheckBoxes.Count(); i++)
{
@Html.CheckBoxFor(model => model.serviceCheckBoxes[i].selected, new { name="child"});
@Html.Label(Model.serviceCheckBoxes[i].name);
}
这样你就拥有了与模型一样多的复选框。
我想创建一个JQuery脚本,当我检查至少一个子复选框时检查父复选框,但我无法弄明白。这是我尝试过的:
var isChecked = $("checkbox[name=child]").prop('checked');
if (isChecked) {
$('#parent').prop('checked',true);
$('#common').prop('checked',true);
}
我已经读过,如果选中该复选框,prop
方法将返回true。我也试过使用.attr
方法,但无济于事:
var isChecked = $("checkbox[name=child]").attr("checked");
在我的浏览器上检查元素,我注意到name="child"
不在页面中,也许这就是问题所在?
感谢您的帮助:)
编辑 HTML生成:
<input data-val="true" data-val-required="Le champ parentBox est requis."
disabled="disabled" id="parent" name="parentBox" type="checkbox" value="true" />
<input name="parentBox" type="hidden" value="false" />
<label for="Lyon">Lyon</label>
<br/>
<input disabled="disabled" id="common" name="_Commun" type="checkbox" value="true" />
<input name="_Commun" type="hidden" value="false" />
<label for="">_Commun</label>
<input data-val="true" data-val-required="Le champ selected est requis."
id="serviceCheckBoxes_0__selected" name="serviceCheckBoxes[0].selected"
style="margin-left:20px" type="checkbox" value="true" />
<input name="serviceCheckBoxes[0].selected" type="hidden" value="false" />
<label for="R_daction">Rédaction</label>
<br />