编辑:我犯了一个愚蠢的错误。我使用的是一些旧代码,其中的start
在点击后变成了灰色。现在都固定了。经验教训:如果文件足够小,则逐行解析代码。
我在html中有一个表单,该表单在javascript中调用了名为callStopwatch()
的函数。第一次提交表单时,该函数执行得很好。但是,再次单击submit
按钮不会执行任何操作。刷新页面可以解决问题,但是我希望能够单击submit
并多次返回callStopwatch()
而不必刷新。我在做什么错了?
HTML:
<form id="options" action="" onsubmit="return callStopwatch()" method="post">
<fieldset>
<label> foo:
<input type="text" class="textForm" name="foo" size="2" /> foo1
</label>
<input type="submit" id="submit" class="button" alt="start" value="Start" />
<input type="reset" id="clear" class="button" alt="clear" value="Clear" />
<input type="button" id="reset" class="button" alt="reset" value="Reset" />
</fieldset>
</form>
JS:
var isRunning = false; // flag purposes
function callStopwatch() {
var timer = document.getElementById('timer');
var toggleBtn = document.getElementById('submit');
var resetBtn = document.getElementById('reset');
var clearBtn = document.getElementById('clear');
watch = new Stopwatch(timer);
watch.start();
isRunning = true;
resetBtn.addEventListener('click', function() {
watch.stop();
watch.reset();
document.getElementById("submit").disabled = false;
});
clearBtn.addEventListener('click', function() {
watch.stop();
watch.reset();
document.getElementById("submit").disabled = false;
});
}
navigator.mediaDevices.getUserMedia({ audio: true})
---more code here---
.then(function(stream) {
if(arbitrary_condition = true){
watch.stop();
isRunning = false;
}
})
我知道上面有很多代码。我不知道在哪里寻找问题。单击submit
时,该表单应该再次运行秒表,尽管不是这样。单击reset
然后start
的行为就可以了,但是我希望能够单击start
而无需重置。
编辑:我尝试为启动按钮添加另一个eventlistener,但未按预期工作。也许我做错了。
答案 0 :(得分:1)
我不知道这是否是您的问题,但这是
if(arbitrary_condition = true)
几乎可以肯定不是您想做的(=用于分配,==或===用于比较)