У меня 2 радио кнопки. Это поведение, которое я хочу:
- Первоначально они оба установлены на непроверенный
- Когда один отмечен, а другой был нажат, просто используйте оригинальное поведение (переключите отмеченный чтобы не проверялось, а не проверялось отмечалось)
- Когда один отмечен, и он был нажат во время проверки -> снять флажок (и оставить другой также не отмеченным)
Это мой HTML:
<div id="postDealFormCurrencyContainer" class="postDealFormCurrencyContainer">
<label class="postDealFormCurrencyText postDealFormCurrencyText--borderleft" for="postDealFormShekelsCurrency">₪</label>
<input type="radio" id="postDealFormShekelsCurrency" name="post_deal[currency]" value="shekels" style="display: none;">
<label class="postDealFormCurrencyText" for="postDealFormDollarsCurrency">$</label>
<input type="radio" id="postDealFormDollarsCurrency" name="post_deal[currency]" value="dollars" style="display: none;">
</div>
Это jQuery:
let $postDealFormCurrencyContainerOBJ = $('#postDealFormCurrencyContainer');
$postDealFormCurrencyContainerOBJ.on('click', 'label', function() {
if($(this).hasClass('postDealFormCurrencyText--selected') === true) {
$(this).removeClass('postDealFormCurrencyText--selected').next().prop('checked', false);
} else {
$(this).addClass('postDealFormCurrencyText--selected');
$(this).siblings('label').removeClass('postDealFormCurrencyText--selected');
}
});
Это работа для первых двух терминов, которые я указал выше, но третий не удовлетворен этим jQuery кодом. Это связано с тем, что я снял флажок с проверенным нажатием переключателя, но сразу после того, как он автоматически проверяет его (потому что я сделал прослушиватель событий для label
и сразу после вызова прослушивателя событий по умолчанию input
, потому что он также был нажат - тогда он проверяет это обратно).