在执行时重置Javascript中的变量?

在执行时重置Javascript中的变量?,javascript,jquery,html,Javascript,Jquery,Html,我正在使用此功能在15秒后自动单击按钮。问题是,用户在运行该选项后没有离开页面,可能会在同一页面上再次运行该选项,但计时器仍在继续。事实上,即使我自己做动作,计时器也会继续 <script type="text/javascript"> time = 15; interval = setInterval(function() { time--; document.getElementById('Label1').innerHTML = "You must choose i

我正在使用此功能在15秒后自动单击按钮。问题是,用户在运行该选项后没有离开页面,可能会在同一页面上再次运行该选项,但计时器仍在继续。事实上,即使我自己做动作,计时器也会继续

<script type="text/javascript">
time = 15;
interval = setInterval(function() {
  time--;
    document.getElementById('Label1').innerHTML = "You must choose in " + time + " seconds"
    if (time == 0) {
        // stop timer
        clearInterval(interval);
        // click
        document.getElementById('thebutton').click();       
    }
}, 1000)

</script>

时间=15;
间隔=设置间隔(函数(){
时间--;
document.getElementById('Label1').innerHTML=“您必须在“+时间+”秒”内进行选择”
如果(时间==0){
//停止计时器
间隔时间;
//点击
document.getElementById('thebutton')。单击();
}
}, 1000)
因此,这个脚本应该运行计时器并在15秒内“按下”按钮,然后计时器应该停止计数并重置,直到再次运行。如果在15秒前手动按下按钮,它仍应复位

<input type='submit' id='thebutton' value='Done'></input>


希望这是清楚的。我还是个新手,正在学习。

设置一个基准时间,然后将其重置为基准时间

<script type="text/javascript">
time = 15;
baseTime = 15;
interval = setInterval(function() {
  time--;
    document.getElementById('Label1').innerHTML = "You must choose in " + time + " seconds"
    if (time == 0) {
        // stop timer
        clearInterval(interval);
        // click
        document.getElementById('thebutton').click(); 
        time = baseTime;
        return false;


    }
}, 1000)

</script>

时间=15;
基准时间=15;
间隔=设置间隔(函数(){
时间--;
document.getElementById('Label1').innerHTML=“您必须在“+时间+”秒”内进行选择”
如果(时间==0){
//停止计时器
间隔时间;
//点击
document.getElementById('thebutton')。单击();
时间=基准时间;
返回false;
}
}, 1000)

如果您只想在15秒后单击按钮一次,则应使用setTimeout()函数而不是setInterval()


然后,如果您不希望在用户单击按钮时自动单击,则需要向按钮添加一个调用clearTimeout()的onClick处理程序。

我想您希望标签在秒数倒计时时更新?现在还不清楚计时器是如何启动的。检查下面的代码,看看它是否符合您的期望

var时间、间隔;
函数stopTimer(){
如果(间隔){
间隔时间;
间隔=空;
}
时间=15;
}
函数timerAction(){
$('#lblStatus').text(“您必须在“+时间+”秒”中进行选择”);

如果(time--如果只想运行一次,可以使用setTimeout函数

setTimeout(your code, 15000);

我看了一下代码,我认为您应该看的最关键的一点是按钮没有“onclick”功能。 这意味着单击按钮没有任何作用,因为您没有在那里放置一个函数,该函数在您单击按钮时会执行某些操作

我写了一些代码,希望对您有所帮助:

let time = 15;
const label = document.getElementById("Label1");
const button = document.getElementById("thebutton");

const getText = () => `You must choose in ${time} seconds`;

const interval = setInterval(() => {
    time--;
    label.innerHTML = getText();
    if (time === 0) {
    // stop timer
    clearInterval(interval);
    // click
    button.click();
  }
}, 1000);

const stopTime = () => {
  clearInterval(interval);
  time = 15;
  label.innerHTML = getText();
};
在html中,类似这样的内容:

<input type='submit' id='thebutton' value='Done' onclick="stopTime()" />

最后,我制作了一个小视频,在其中我浏览了代码,它也可能很有用:


祝你度过愉快的一天!

标签1是什么?不清楚你在问什么。也许你可以添加一些关于你想做什么的解释。什么动作导致计时器启动?这实际上起了一半作用,这很接近。它确实会将时间重置为15,但倒计时从未停止,因此它会重置为15,但会重新开始倒计时,而不会重新执行剪切。我刚刚进行了编辑。我添加了
return false;
这应该会停止计时器。如果没有,请告诉我。