取消选择复选框,然后使用jQuery

时间:2018-08-03 23:09:58

标签: javascript jquery

我需要一个愚蠢的问题的帮助/解决方案,因为这些复选框上编写了许多功能,对此我深表歉意。

我有一个复选框(至少三个)。用户可以选择任何复选框,但应取消选择其他复选框,并通过在不支持false的复选框上触发强制“单击”事件来取消选择其他复选框的条件。

如果上述说明不够清楚,请通知我。

(注意:由于某些原因,我无法使用单选按钮)。

再次对这个愚蠢的问题感到抱歉,非常感谢您的帮助。

<div class=" tiles">

    <div class=" savingPack">
        <input type="checkbox" name="savingspack" value="savingspack6" data-add-price-month="0" data-add-price-onetime="1500" data-other-price-divs=".addons">
        <div class="tile">
            <div class="tile-label">op - 1</div>
        </div>
    </div>

    <div class=" savingPack">
        <input type="checkbox" name="savingspack" value="savingspack6" data-add-price-month="0" data-add-price-onetime="1500" data-other-price-divs=".addons">
        <div class="tile">
            <div class="tile-label">op - 2</div>
        </div>
    </div>

    <div class=" savingPack">
        <input type="checkbox" name="savingspack" value="savingspack6" data-add-price-month="0" data-add-price-onetime="1500" data-other-price-divs=".addons">
        <div class="tile">
            <div class="tile-label">op - 3</div>
        </div>
    </div>
</div>

$('.savingPack').on('click touchstart', function(event) {

  var checkbox, allCheckboxes;
  allCheckboxes = $('.savingPack').find('.tile');

  checkbox = $(this).find('.tile');
  checkbox.toggleClass('active');

  var other = allCheckboxes.not(checkbox);
  if (other.hasClass('active')) {
    other.triggerHandler('click');
    other.removeClass('active');
  } else console.log(false);

  event.preventDefault();

});

1 个答案:

答案 0 :(得分:0)

尝试:

$('input[name="savingspack"]').on('click',function(){
   if(this.checked){
      $('.tiles input:checkbox').prop('checked',false);
      $(this).prop('checked',true);
   }
});