Javascript复选框选择/取消选择

Javascript复选框选择/取消选择,javascript,Javascript,我在JSP中使用java脚本问题是我需要在选中复选框时自动刷新它工作正常,但在取消选中时它不会停止自动刷新活动。plz建议 提前谢谢 function autorefresh() { var isChecked = document.getElementById("is_check").checked; var time = 0; if (isChecked == true) { time = setInterval(function () {

我在JSP中使用java脚本问题是我需要在选中复选框时自动刷新它工作正常,但在取消选中时它不会停止自动刷新活动。plz建议 提前谢谢

function autorefresh() {
    var isChecked = document.getElementById("is_check").checked;
    var time = 0;
    if (isChecked == true) {
        time = setInterval(function () {
            showExport()
        }, 5000);
    } else if (isChecked == false) {
        clearInterval(time);
    }
}

这是因为您正在
autorefresh
上下文中定义
time
变量,因此它不再存储间隔的ID,您应该在函数之外定义它

将时间变量定义为全局变量:

window.time=0;     //global declaration
function autorefresh() {
    var isChecked = document.getElementById("is_check").checked;
    if (isChecked == true) {
        time = setInterval(function () {
            showExport()
        }, 5000);
    } else if (isChecked == false) {
        clearInterval(time);
    }
}

在函数外部声明
time
。还请注意,您可以将
if(x==true){…}else if(x==false){…}
减少为
if(x){…}else{…}
@FelixKling-为什么?顺便说一下@NaimFS,
setInterval(函数(){showExport()},5000)-->
setInterval(showExport,5000)以便在函数调用之间保持不变。@FelixKling-是因为
autorefresh
被多次调用吗?(尽管他从来没有在他的问题中说过,或者我可能错过了)@Derek朕會功夫: 为什么,这完全有道理:如果选中复选框,则开始间隔。如果未选中该复选框,请停止该复选框,等等。当然,再次选中该复选框时,应重新执行该复选框。