一键单击后如何使HTML按钮标记不可单击?

时间:2019-07-23 17:00:45

标签: javascript php html button anchor

当前分配了创建网站的任务,该网站使用python可视化网络。这样,单击按钮后,python脚本将运行用户设置的特定参数。为了避免巨大的负载请求,我们只希望用户单击一次按钮,而不能多次运行脚本。我们想到的是先单击一次按钮,然后在一个请求之后变为禁用状态(直到他们刷新页面,尽管我知道他们可以再次运行它,但是一旦到达那里,我们将讨论该问题。 )。我们目前还使用锚标记使用PHP来调用python脚本。我相信,由于我们使用的是定位标记,因此我们可能必须更改定位标记的href属性,以便它不会多次运行python脚本,即使按钮可单击也无济于事。

我们尝试使用JavaScript函数:

let toggleVisual = false;

let hideVisual = function() {
  let visual = document.getElementsById('visual');

  if (toggleVisual = false) {
    visual.disabled = true;
    toggleVisual = true;
  }
}

更多JavaScript:

document.getElementById('form-button').onclick = function () {
    this.disabled = true;
}

甚至是一些HTML:

<a href="?run=true" onclick="return false;"><button  id="form-button" class="visualize-btn">Visualize</button></a>

调用python脚本的PHP代码:

   <?php
   if (isset($_GET["run"])) {
      $output = shell_exec('sh test.sh');
      echo "<pre>$output</pre> works";
    }
   ?>

我希望当我单击按钮来运行脚本时,该按钮(或定位标记)将被禁用,以确保python脚本不会多次运行。

1 个答案:

答案 0 :(得分:0)

欢迎使用StackOverflow!您已经快结束了。查看onclick()事件,您可能会喜欢。根据您的第一次尝试,一个简单的代码将类似于:

<button id="form-button" class="visualize-btn" onclick="doSomething();">Visualize</button>

<script type="text/javascript">
var wasClicked = false;
function doSomething() {
    if(wasClicked) { return; }
    wasClicked = true;

   // Your code here
   alert('Hello world!');
}
</script>

祝您网站运气好!