点击时单独的儿童行为输入 jQuery

Separate children behaviour input on click jQuery

https://codepen.io/btek/pen/qBjaddP

我正在尝试将 selection 在 select 上分离为 select 仅来自一种产品的选项。

我正在尝试 each() 、 children()。

$('[name="subscribe"], [name="not_subscribe"]').off('click').on('click', function (event) {
    var isSubscribe = $(event.target).val() === 'subscribe';

    if ($(event.target).prop("checked")) {
      $('input[type="checkbox"][value="not_subscribe"]').prop('checked', !isSubscribe);
      $('input[type="checkbox"][value="subscribe"]').prop('checked', isSubscribe);
      $('[data-amrecurring="recurring-settings"]').toggle(isSubscribe);
    } else {
      $('input[type="checkbox"][value="not_subscribe"]').prop('checked', isSubscribe);
      $('input[type="checkbox"][value="subscribe"]').prop('checked', !isSubscribe);
      $('[data-amrecurring="recurring-settings"]').toggle(!isSubscribe);
    }



  }.bind(this));

为方便起见,我已将您的代码移至 JSFiddle。我只更改了 javascript.

我将事件拆分为“取消订阅”和“订阅”,并通过两个函数找到了您需要的项目:parents and find:

$(event.target).parents('form').find('[name="not_subscribe"]').prop('checked', false);
$(event.target).parents('form').find('[data-amrecurring="recurring-settings"]').toggle(true);

toggle这里就不用了,你要的状态你自己知道。请改用不带参数的 showhide

$(event.target).parents('form').find('[data-amrecurring="recurring-settings"]').show();

JSFiddle example