Снимите флажок с проверенного элемента ввода типа radio - PullRequest
0 голосов
/ 15 апреля 2020

У меня 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, потому что он также был нажат - тогда он проверяет это обратно).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...