如何重新提交HTML表单

时间:2019-05-29 03:52:09

标签: javascript html

编辑:我犯了一个愚蠢的错误。我使用的是一些旧代码,其中的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,但未按预期工作。也许我做错了。

1 个答案:

答案 0 :(得分:1)

我不知道这是否是您的问题,但这是

if(arbitrary_condition = true)

几乎可以肯定不是您想做的(=用于分配,==或===用于比较)