我有一个像这样的复选框循环
@{
for (int i = 0; i < Model.Lessons.Count; i++ )
{
@Html.Label(Model.Lessons[i].Lesson.Title)
@Html.HiddenFor(x => x.Lessons[i].Lesson.ID)
@Html.CheckBoxFor(x => x.Lessons[i].LessonSelected,new {id = "ddLesson"+i.ToString()})
}
}
现在我想在jquery代码中禁用这些复选框,直到我在下拉列表中选择我的一个标题。我该怎么办?
答案 0 :(得分:0)
如果您有这些具有相似名称的复选框,则可能需要使用** StartsWith“属性。
<script type ="text/javascript">
$(document).ready(function() {
$('.somedropdown').change(function() {
$('input[name^="ddLesson"]').disabled = true;//This will disable all checkboxes starts with ddLesson. other wise you can use a for loop to disable the checkboxes.
});
});
</script>
然后从jquery链接开始是Here
答案 1 :(得分:0)
为什么你需要jquery呢? CheckBox
助手需要boolean
值作为第二个参数。
试试这样:
@Html.CheckBoxFor(x => x.Lessons[i].LessonSelected,
new {id = "ddLesson"+i.ToString(), disabled = "disabled"})
答案 2 :(得分:0)
试
<强> HTML /剃刀强>
for (int i = 0; i < Model.Lessons.Count; i++ )
{
@Html.Label(Model.Lessons[i].Lesson.Title)
@Html.HiddenFor(x => x.Lessons[i].Lesson.ID)
@Html.CheckBoxFor(x => x.Lessons[i].LessonSelected,
new {id = "ddLesson"+i.ToString() @disabled = "disabled" })
}
<强> JS 强>:
$('#dropdownList').change(function() {
if($(this).val() == 'whatever') {
$('input[name^=ddLesson]').each(function(i) {
$("#ddLesson" + i).removeAttr('disabled');
});
}
});
加载时禁用所有复选框。如果您从下拉列表中选择“任何”,上面的JS将启用所有复选框。
JSFiddle :http://jsfiddle.net/X87L6/1/
但是,如果您的意思是选择一个等于您要启用的复选框的ID的值:
$('#dropdownList').change(function() {
var id = $(this).val();
$(id).removeAttr("disabled");
});
答案 3 :(得分:0)
试试这个
$(document).ready(function () {
$('[id^="ddLesson"]').prop('disabled', 'disabled');//default set checkbox disable
$('.somedropdown').change(function () {//on dropdown change
if ($(this).val() != '0') {
$('[id^="ddLesson"]').removeAttr('disabled'); //This will enable all checkboxes starts with ddLesson.
}
});
});