好像我的简单检查属性切换似乎不能正常工作,我的功能如下:
$('#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/
答案 0 :(得分:1)
它无效,因为click事件是在输入类型的父元素复选框上复选的,这是自定义检查器,所以你只需要将click函数更改为其父元素
//parent() method
$('#enable_payment').parent().click(function (e)