.checked не меняет состояние css свойства - PullRequest
0 голосов
/ 05 мая 2018

Похоже, что мой простой переключатель свойства не хочет работать правильно, моя функция выглядит следующим образом:

$('#enable_payment').click(function (e) {
            e.preventDefault();
            var form = $('.payment-system-form');
            if(form.hasClass('show-fees')){
                swal({
                    title: "Are you sure?",
                    text: "Transactions made outside........",
                    type: "error",
                    confirmButtonClass: "btn-danger",
                    confirmButtonText: "Yes!",
                    showCancelButton: true
                }, function() {
                    //on okay
                    $("input[name='enable_payment']")[0].checked = false;
                    form.removeClass('show-fees');
                }, function() {
                    //on cancel
                });
            } else {
                $("input[name='enable_payment']")[0].checked = true;
                form.addClass('show-fees');
            }
        });

Изначально при загрузке страницы $("input[name='enable_payment']")[0].checked устанавливается на true, как, например, <input type='checkbox' name='enable_payment' checked>

Затем я хотел добавить предупреждение после того, как его собирались отключить, к которому мне нужно было добавить e.preventDefault(), как только я добавил это, я больше не мог переключать свойство checked?

Я пытался сделать оба

$("input[name='enable_payment']").prop('checked', true);
$("input[name='enable_payment']").prop('checked');

Но если я запусту $("input[name='enable_payment']").prop('checked', true); в моем инструменте разработчика Google Chrome, он будет работать как положено?

В общем, моя проблема в том, что $("input[name='enable_payment']").checked всегда остается ложным и не может быть выполнен true снова, как только я нажму окей на моей swal() функции

Вот jsFiddle: https://jsfiddle.net/vcz48umx/

1 Ответ

0 голосов
/ 05 мая 2018

Это не работает, потому что событие click запускает родительский элемент флажка типа ввода, который является пользовательской проверкой, поэтому вам просто нужно изменить функцию click на ее родительский

//parent() method
$('#enable_payment').parent().click(function (e)
...