【发布时间】:2019-08-01 14:01:14
【问题描述】:
我已尝试解决此问题,但无论我尝试什么,按钮都不会保持禁用状态超过一秒钟,并且不会执行我的 PHP 脚本。
我的网页上有一个重启按钮,点击该按钮后会向管理员发送一封电子邮件,让他们知道已请求重启。我希望它能够被点击一次然后变成灰色以防止多次点击。我希望它在一定时间后再次激活
如何使重新启动按钮变为可单击一次(以排除执行过多脚本的可能性)并仍然执行 PHP 脚本?
这是我的代码:
<form action=index.php method= "post">
<input type="submit" value="Request Restart" id="alertTimerButton" name="clickMe" onclick="countClicks();"/>
<?php
if (isset($_POST['clickMe']))
{
exec("/anaconda3/bin/python /Users/shoot_station_5/Sites/simpleblogs/restartemail.py \"$input_val\"");
} else{
}
我尝试添加各种 javascript,例如:
function disable()
$(document).ready(function(){
$('.once-only').submit(function(){
$(this).children('button').prop('disabled', true);
alert("Thankyou a restart has been requested.");
});
});
和
<script type="text/javascript">
var ClickCount = 0;
function countClicks() {
var clickLimit = 1; //Max number of clicks
if(ClickCount>=clickLimit) {
alert("a restart has already been requested");
return false;
}
else
{
ClickCount++;
alert("Thankyou a restart has been requested.");
return true;
}
}
【问题讨论】:
-
在提交表单之前使用一些javascript函数禁用按钮。
-
我建议使用 localstorage 来存储按钮应该再次处于活动状态的日期,否则如果页面刷新,按钮将再次启用。
-
在我看来您正在提交页面,而 PHP 正在将您返回到相同的页面?这意味着一个新的 JavaScript “上下文”,因此需要做一些比禁用按钮更复杂的事情。您想在一段时间后重新启用,还是在特定事件上重新启用?
-
你可以让php在按钮被点击的时候添加一个
$_SESSION["Clicked"] = "true"。然后你可以添加一个禁用按钮的类,例如<?php if(isset($_SESSION['Clicked']) && $_SESSION['Clicked'] == 'true') { echo "class = 'disabled'" } ?>
标签: javascript php jquery html css