javascript - 我怎样才能让我的提交按钮可点击一次并仍然执行我的 php?
问题描述
我已经尝试解决这个问题,但无论我尝试什么,按钮都不会保持禁用状态超过一秒钟,也不会执行我的 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;
}
}
解决方案
你必须改变
onclick="countClicks();"
至
onclick="return countClicks();"
那么您的 2. 解决方案确实有效。
您的 1. 解决方案有多个错误。不要将代码包装在 disable() 函数中。'按钮'之前缺少一个#。
我会这样做:
onclick="disabled=true;"
够了。
因为您评论说您没有运行第二个解决方案,所以这里是代码:
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("Thank you a restart has been requested.");
return true;
}
}
<form action="#" method="post">
<input type="button" value="Request Restart" id="alertTimerButton" name="clickMe" onclick="return countClicks();"/>
</form>
推荐阅读
- php - 在 Syfmony 中注册特定的表单类型 - 编译器通行证
- spring - 使用cron在Spring中安排周期性的反应任务?
- tensorflow - 更新变量时分布式张量流中的原子性
- angular - 如何通过 Zuul Proxy spring-boot 2.1.1 使服务器发送事件(SSE)工作
- excel - 替代组合学
- mysql - 删除重复行,按 max(datetime) 保留最新行
- reactjs - 解码 Jwt 令牌 React
- python - 使用条形图的数量来设置条形图的宽度/标签大小
- kaggle - kaggle 竞赛子模块在哪里?
- c# - 如何在多选中将 SelectedItem 属性设置为当前单击的元素