【发布时间】:2019-01-31 18:28:06
【问题描述】:
当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" />
【问题讨论】:
-
我无法重现它:您的代码按预期工作。另外,避免使用
alert(),因为它会阻止脚本执行。使用console.log()并检查您的开发工具控制台。尝试控制台日志记录someCondition:您确定它正在评估为false? -
我已将您的代码放在一个运行良好的 sn-p 中。检查以确保控制台中没有错误,并且在 DOM 加载后您正在运行 jQuery 代码。还要确保
getInfo()返回的是false,而不是'false'或0。 -
此问题无法重现。也许您需要清除 cookie 和缓存,然后再试一次。
-
您的代码按照说明中的说明运行。
-
getInfo()是否使用异步调用?
标签: javascript jquery