javascript - 请问当表单按钮是a标签的时候,如何防止前端表单重复提交
巴扎黑
巴扎黑 2017-04-11 09:09:50
[JavaScript讨论组]

我的需求是;当用户点击按钮提交表单时;防止用户多次点击按钮向后台提交重复内容;

巴扎黑
巴扎黑

全部回复(5)
伊谢尔伦
var flag = false;
检测表单内容是否有改变且符合要求;
有 flag = true;
<a>.onclick = function(){
    if(flag){
    //提交请求
    flag = false
    }else{
    //您已提交
    }
    //取消a的默认行文
    return false
}
ringa_lee

e.preventDefault 然后手动ajax并上锁

阿神
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>

<body>
    <a id="once">只能点一次</a>
</body>

</html>
<script>
(function() {

    //第一次默认为true
    var boo = true;
    document.getElementById('once').onclick = function() {
    
        //判断是否能点击
        if(boo) {
        
            //点了之后改成false
            alert('第一次成功');
            boo = false;
        } else {
            alert('不能在点了')
        }
    }
})()
</script>
伊谢尔伦

提交完之后来个提示框,然后刷新页面或者跳转!

PHP中文网

与是不是 a标签 没有关系,

如果你的表单是原生表单提交,需要后台配合利用token(顺便做了csrf防范)来做处理。

如果是ajax提交时,可以设一个变量,根据变量的值来检测,是否可以提交表单

var canSubmit = true;
$form.on('submit', function() {
  if (canSubmit === false) return;
  canSubmit = false;
  $.ajax(……   function(res){
    canSubmit = true;
  });
});
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号