JavaScript实现按钮点击间隔控制与防重复提交
作者:纸飞机时间:2026-10-28 13:04:26浏览:239
本文介绍如何使用JavaScript控制按钮点击后的间隔时间,通过禁用按钮和显示倒计时来防止用户重复提交或频繁刷新。代码示例展示了如何结合HTML元素操作与setTimeout实现60秒倒计时逻辑,适用于验证码获取等场景。
JavaScript实现按钮点击间隔控制与防重复提交
<script type="text/javascript" language="javascript">
var wait = 60;
function change() {
$o = $("#J_refresh_checkcode");
if(wait == 0) {
$o.removeAttr("disabled");
$o.html("看不清?换一张");
wait = 60;
} else {
$o.attr("disabled", true);
$o.attr("font-color", "gray");
$o.html(wait + "秒后可重新获取");
wait--;
if(wait == 59) {
var imgNode = document.getElementById("vimg");
imgNode.src = "../../AjaxServer/CheckCodePic.ashx?t=" + (new Date()).valueOf(); // 这里加个时间的参数是为了防止浏览器缓存的问题
$("#J_checkcode_tip").addClass("hide");
$("#J_checkcode_tip>div").html("");
$("#<%=hidPicMessage.ClientID%>").val("");
}
setTimeout(function() {
change()
},
1000)
}
}</script>
对应的HTML结构如下:
HTML结构示例
<div class="kv_item clear">
<span class="kv_label fl">验证码</span>
<input name="checkCode" class="i_textshort fl" id="J_checkcode_input" onmousedown="ClearCodeMessage()" type="text" maxlength="6" autocomplete="off" onblur="CheckCode()" />
<img src="../../AjaxServer/CheckCodePic.ashx" height="28" id="vimg" alt="" style="float:left;margin:-1px 0 0 3px"/>
<a id="J_refresh_checkcode" onclick="change()">看不清,换一张</a>
<div class="msg msg-inline msg-weak hide" id="J_checkcode_tip">
<div class="msg-default msg-error">
<i class="msg-icon"></i>
<div class="msg-content">
</div>
</div>
</div>
</div>
作者最新文章
React中怎么不可变地删除JS数组元素
2026-11-05 18:06:01
JS动态构建复杂嵌套JSON对象的方法
2026-11-05 15:41:52
JS负数取余为什么是负数?详解余数与模运算区别
2026-11-05 13:34:41
JS 解压出现乱码或报错怎么解决?
2026-11-05 12:32:38
JS 中 startsWith、indexOf 与正则判断字符串前缀的对比
2026-11-04 22:19:43
