繁体   English   中英

禁用并重新启用按钮

[英]Disable and re-enable button

我页面上有几个按钮,分别是“开始计时器”按钮或“停止计时器”按钮,它们分别运行startTimer和stopTimer函数。

在startTimer功能期间,按钮的onclick从startTimer变为stopTimer,反之亦然。

此刻,一旦单击,该按钮将永久运行两个功能。

我希望它运行该功能,然后停止准备再次单击该按钮并运行相反的功能。

我一直在探索的一种方法是在按钮运行时禁用它,让功能检查一个已启用的按钮,运行该功能,然后尝试创建一个事件来重新启用它。 这是我苦苦挣扎的最后一刻。

function startTimer(project) {
var url = document.URL + '?timer=start&id=' + project;
var buttonid = 'button' + project;
var button =  document.getElementById(buttonid);
var stopText = 'stopTimer(' + project + ')';
if(button.disabled == false){
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",url,false);
    xmlhttp.send();
    var result = xmlhttp.responseText;

    if(result == 'ok'){
        button.disabled = true;
        button.setAttribute("class","btn btn-danger btn-mini");
        button.value = "Stop Timer";
        button.setAttribute("onclick", stopTimer(project));
    }
    else{
        alert("I couldn't start the timer.");
    }
}

}

function stopTimer(project) {
var url = document.URL + '?timer=stop&id=' + project;
var buttonid = 'button' + project;
var button =  document.getElementById(buttonid);
var startText = 'startTimer(' + project + ')';

if(button.disabled == false){
    xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",url,false);
    xmlhttp.send();
    var result = xmlhttp.responseText;

    if(result == 'ok'){
        button.disabled = true;
        button.setAttribute("class","btn btn-sucess btn-mini");
        button.value = "Start Timer";
        button.setAttribute("onclick", startTimer(project));
    }
    else{
        alert("I couldn't stop the timer.");
    }
}

HTML / PHP:

<?php if(in_array($project[0], $started)){ ?> 
                    <td>
                        <input type="button" class="btn btn-danger btn-mini" value="Stop Timer" onClick="stopTimer(<?php echo $project[0]; ?>)" id="button<?php echo $project[0]; ?>" />
                    </td>
                    <?php } else { ?>
                    <td>
                        <input type="button" class="btn btn-success btn-mini" value="Start Timer" onClick="startTimer(<?php echo $project[0]; ?>)" id="button<?php echo $project[0]; ?>" />
                    </td>
                    <?php } ?>

我建议创建一个功能toggleTimer,并将按钮的单击绑定到该功能。 因此,您无需为按钮的click属性感到烦恼,只需调整相应请求的网址即可。

/ copypasta

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM