.checked没有改变属性css状态

时间:2018-05-05 04:13:46

标签: javascript jquery sweetalert

好像我的简单检查属性切换似乎不能正常工作,我的功能如下:

$('#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');

但是,如果我在Google Chrome开发者工具中运行$("input[name='enable_payment']").prop('checked', true);,它会按预期运行吗?

总而言之,我的问题是$("input[name='enable_payment']").checked始终 false &amp;一旦我点击swal()功能 上的 okay ,就无法再次真实

这里是jsFiddle:https://jsfiddle.net/vcz48umx/

1 个答案:

答案 0 :(得分:1)

它无效,因为click事件是在输入类型的父元素复选框上复选的,这是自定义检查器,所以你只需要将click函数更改为其父元素

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