在Jquery中禁用复选框

时间:2013-06-20 04:55:19

标签: jquery asp.net-mvc

我有一个像这样的复选框循环

@{
         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代码中禁用这些复选框,直到我在下拉列表中选择我的一个标题。我该怎么办?

4 个答案:

答案 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. 

            }
        });


    });