行动与提交表单之间的冲突

时间:2018-07-08 09:49:37

标签: javascript forms action settimeout onsubmit

我正在用python Flask开发一个应用程序。我有一个表单,单击该表单会触发一个动作,以执行app.py中的零件。但是我希望按钮在24小时内只能单击一次。因此,我尝试实现onsubmit事件。但是由于onsubmit首先被执行,所以我的动作部分与app.py中的代码有关。

1)这是表单代码:

 <form name="Update" action="/update" method="post">
    <input type="submit" id="myBtn" value="Update" onsubmit="myFunction()">
 </form>`

2)action ='/ update“会在app.py中触发此部分:

@app.route('/update',methods=['POST'])
def Update():
 ....
 ....
 ....
return render_template('index.html', output=output)  

3)我试图为表单提交启用超时的代码,这导致了冲突。

<script>
  function myFunction() 
  {
    document.getElementById("myBtn").disabled = true;
    setTimeout(function()
    {
      document.getElementById("myBtn").disabled = false;
    }, 200000);
  }
</script>

因为document.getElementById(“ myBtn”)。disabled = true;首先击中动作部分未执行。请提供有关如何解决此问题的帮助。预先感谢。

1 个答案:

答案 0 :(得分:0)

您可以尝试以“提交”形式而不是输入形式。

<form name="Update" action="/update" method="post" onsubmit="myFunction()">
    <input type="submit" id="myBtn" value="Update">
</form>

js部分

<script>
  function myFunction() 
  {
      return true; /// form execution goes on
      return false; /// form execution stops
  }
</script>