2013-10-10 95 views
0

我有一个具有不同权限的用户下拉菜单。用户的不同权限是查看,编辑或删除。从下拉菜单中选择用户时,复选框应根据其拥有的权限进行更新。我试过使用.prop()和.attr()无济于事。 http://jsfiddle.net/DWM4r/选择一个选项来检查/取消选中复选框不起作用?

HTML

   <select class='select210'> 
       <option class='user1'>[email protected]</option> 
       <option class='user2'>[email protected]</option> 
       <option class='user3'>[email protected]</option> 
       </select> 
       <input type='checkbox' checked class='viewChk' />View 
       <input type='checkbox' checked class='editChk' />Edit 
       <input type='checkbox' checked class='delChk' />Delete 

jQuery的

 $('.user3').click(function() { 
      $('.viewChk').attr('checked', true); 
      $('.editChk').attr('checked', false); 
     $('.delChk').attr('checked', false); 
    }); 
    $('.user2').click(function() { 
      $('.viewChk').prop('checked', true); 
      $('.editChk').prop('checked', true); 
      $('.delChk').prop('checked', false); 
    }); 
    $('.user1').click(function() { 
      $('.viewChk').prop('checked', true); 
      $('.editChk').prop('checked', true); 
      $('.delChk').prop('checked', true); 
    }); 

回答

2

.prop是设置复选框的正确方法。

您的活动未被触发,因为点击事件未触发。

尝试.change,注意我调整了option s以使数据具有value属性而不是class属性。要么确保默认选择的选择和默认复选框比赛(因为他们在与USER1你的例子做)或手动触发$('.select210').change()

你也可能需要设置.prop('disabled', true)如果要更改这些默认设置禁止用户。

fiddle

<select class='select210'> 
    <option value='user1'>[email protected]</option> 
    <option value='user2'>[email protected]</option> 
    <option value='user3'>[email protected]</option> 
</select> 
<input type='checkbox' checked class='viewChk' />View 
<input type='checkbox' checked class='editChk' />Edit 
<input type='checkbox' checked class='delChk' />Delete 

$('.select210').change(function(){ 
    var value= $(this).val(); 
    switch(value){ 
    case 'user1': 
     $('.viewChk').prop('checked', true); 
     $('.editChk').prop('checked', true); 
     $('.delChk').prop('checked', true); 
     break; 
    case 'user2': 
     $('.viewChk').prop('checked', true); 
     $('.editChk').prop('checked', true); 
     $('.delChk').prop('checked', false); 
     break; 
    case 'user3': 
     $('.viewChk').prop('checked', true); 
     $('.editChk').prop('checked', false); 
     $('.delChk').prop('checked', false); 
     break; 
    } 
}); 
0

必须设置onchange事件,而不是点击,为选择输入尝试这种解决方案。

$(".user3").change(function() { 
    $('.viewChk').prop('checked', true); 
      $('.editChk').prop('checked', true); 
      $('.delChk').prop('checked', false); 
      $('.delChk').attr('checked', false); 
}); 

对其他人应用相同。

相关问题