jQuery复选框选中 单击按钮时切换

jquery checkbox checked toggle when click of a button

本文关键字:按钮 单击 复选框 jQuery      更新时间:2023-09-26

我想在单击按钮时切换复选框。

这是我的jQuery

$("#choose_address2").on("click", function () { 
   console.log("click!!! address2");
   var $checkbox = $(this).find(':checkbox');
   var checkBoxes = $("input[name=checkbox]]");
   checkBoxes.prop("checked", !checkBoxes.prop("checked"));
});

这是我的输入

<span id="choose_address2" class="btn btn-info">
<i class="fa fa-plus-circle"></i>เพิ่มที่อยู่
<input type="checkbox" name="choose_address" {{#if customer.addresses}}checked{{/if}} id="choose_address1" hidden>
</input></span>

默认情况下,该按钮处于选中状态。但是,当我单击带有 id choose_address2的范围时,我想更改状态。任何建议将不胜感激。

试试这个

$("#choose_address2").on("click", function () { 
   console.log("click!!! address2");
   var $checkbox = $(this).find(':checkbox');
   var checkBoxes = $("input[type='checkbox']");
   if(checkBoxes.prop("checked")==true)
     checkBoxes.prop("checked", false); 
   else
     checkBoxes.prop("checked", true)
});

或者这也有效

$("#choose_address2").on("click", function () { 
   console.log("click!!! address2");
   var $checkbox = $(this).find(':checkbox');
   var checkBoxes = $("input[type='checkbox']");
   (checkBoxes.prop("checked")==true)?checkBoxes.prop("checked", false):checkBoxes.prop("checked", true);       
});
$("#choose_address2").on("click", function() {
     var $checkbox = $(this).find(':checkbox');
     $checkbox.prop("checked", !$checkbox.prop("checked"));
});

下面是一个例子

.HTML

<input type="checkbox" class="toggle" checked>
<input type="checkbox" class="toggle">
<button id="choose_address2">
 Toggle checkbox
</button>

JQ

$('#choose_address2').click(function(){
   $('.toggle').each(function(){
     $(this).prop('checked', !$(this)[0].checked);
  })
})

演示http://jsfiddle.net/mPstq/94/

解决此问题的最简单方法:

$checkbox.prop( 'checked', ! $checkbox.is( ':checked' ) );

谢谢大家的建议。.

这为我做了诀窍:

$("#choose_address2").click(function(){
   var checkBox = $("#choose_address1");
   console.log("click!!! address2");
   checkBox.trigger('click');
});