单击标签后,.prop('checked',false)不会取消选中单选按钮

时间:2017-09-10 16:41:32

标签: javascript jquery

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class='label' for='uncheck'>uncheck</label>
<input class='input' type='radio' id='uncheck' value='unchecked'>
printf("%s\n", ptr)

我一直试图取消选中单选按钮,但它不起作用,

1 个答案:

答案 0 :(得分:0)

您应该阻止默认操作(标签正在设置收音机)。您可以通过从事件处理程序返回false来执行此操作:

$(".label").click(function(){
    var id = $("#uncheck");
    if(!!id.prop('checked')) {
      id.prop('checked', false);
      return false;
    }
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class='label' for='uncheck'>uncheck</label>
<input class='input' type='radio' id='uncheck' value='unchecked'>

或使用event.preventDefault() method

$(".label").click(function(e){
    var id = $("#uncheck");
    var value = id.val();
    if(value == 'unchecked'){
      id.val('checked');
    } else {
      e.preventDefault();
      id.val('unchecked');
      id.prop('checked', false);
    }  
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<label class='label' for='uncheck'>uncheck</label>
<input class='input' type='radio' id='uncheck' value='unchecked'>