当getInfo()
返回false
时,窗口alert
被抛出,但复选框仍然被更改;检查是否未选中,反之亦然。
有帮助吗?
$("input[type='checkbox']").click(function(event) {
var someCondition = getInfo();
if (someCondition === false) {
event.preventDefault();
window.alert("Nope");
return false;
}
});
function getInfo() {
return false; // just for testing
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<input type="checkbox" />
如果我理解你需要什么,你可以使用它
$("input[type='checkbox']").click(function (event) {
var someCondition = getInfo();
if(someCondition === false) {
var checkVal = $("input[type='checkbox']").val();
$("input[type='checkbox']").attr( "checked", !checkVal );
window.alert("Nope");
}
});
或者,如果您希望在条件为假的情况下取消选中复选框
$("input[type='checkbox']").click(function (event) {
var someCondition = getInfo();
if(someCondition === false) {
$("input[type='checkbox']").attr( "checked", false);
window.alert("Nope");
}
});
希望能帮助到你
您的代码似乎适用于小提琴,但其他一些插件可能会干扰该行为。仍然,尝试以下,看看这是否解决了这个问题
$("input[type='checkbox']").on('click',function (event) {
var someCondition = getInfo();
var checkBox = $(this);
if(someCondition === false) {
event.preventDefault();
checkBox.prop('checked', !checkBox.prop('checked'))
window.alert("Nope");
return false;
}
});