2016-01-15 32 views
-1

我想在用户取消选中该复选框时禁用下拉菜单。它应该是很简单,但我的代码是不工作...我的代码是: -当在asp.net中检查复选框时启用下拉列表mvc

<div> 
    @Html.CheckBox("Use_Favicon_Image", true, new { id= "1" }) 
    <label for="Use_Favicon_Image">Want to Use favicon</label> 
</div> 
<div class="row"> 
    <div class="input-field col s12"> 
     <p>Select Favicon Image </p> 
     @Html.DropDownList("FaviconImage", new List<SelectListItem> { new SelectListItem { Text = "1.jpg" }, new SelectListItem { Text = "2.jpg" }, new SelectListItem { Text = "3.jpg" }, }, new { id = "2" }) 
    </div> 
</div> 

<script type="text/javascript"> 
    $(function() { 
     $('#1').change(function() { 
      if ($(this).is(':checked')) { 
       // disable the dropdown: 
       $('#2').attr('disabled', 'disabled'); 
      } else { 
       $('#2').removeAttr('disabled'); 
      } 
     }); 
    }); 
</script> 
+3

你遇到了一些错误?我试过你的代码,它的工作原理,请参阅[JSFiddle](https://jsfiddle.net/2vbnemm5/) – BeardedMan

+0

是的,它工作正常,检查并检查浏览器中的任何错误。 –

+0

是不是浏览器特定?也许尝试道具而不是属性,请参阅[JSFiddle](https://jsfiddle.net/2vbnemm5/1/) – BeardedMan

回答

0

试试这个代码:

$(function() { 
    $('#1').change(function() { 
     $('#2').prop('disabled', !$(this).is(':checked'))     
    }); 
}); 
1
$(function() { 
     $('#1').change(function() { 
      if ($(this).is(':checked')) { 
       // disable the dropdown: 
       $('#2').prop('disabled', true); 
      } else { 
       $('#2').prop('disabled', false); 
      } 
     }); 
    });