检查时的JQuery复选框

时间:2017-08-03 12:45:55

标签: jquery asp.net-mvc razor

我有一个包含多个复选框,父复选框和子复选框的页面。有两个父复选框:

@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&#233;daction</label>                   
 <br />

0 个答案:

没有答案