FORM表单绑定SUBMIT事件后怎么防止多次点击连续提交

millionmanhjq 2017-03-17 10:19:56
HTML部分:

<form id="Publish" method="post" action="" autocomplete="off" ui-validate>
<div class="form-group-row row">
<div class="col col-3-4">
<div class="form-group">
<label for="title" class="no">标题</label>
<input type="text" id="title" name="title" class="form-control" maxlength="150" required data-msg-required="标题不能为空">
</div>
</div>
<div class="col col-1-4">
<div class="form-group">
<select id="forum_id" name="forum_id" class="form-control">
<{volist name="forums" id="f"}>
<{eq name="f.forum_id" value="$forum_id"}>
<option value="<{$f.forum_id}>" selected><{$f.forum_name}></option>
<{else/}>
<option value="<{$f.forum_id}>"><{$f.forum_name}></option>
<{/eq}>

<{/volist}>

</select>
</div>
</div>
</div>
<script id="editor" name="content" type="text/plain" data-reply-editor></script>
<div class="clearfix"></div>
<button type="submit" class="reply-btn">发表主题</button>
<div class="clearfix"></div>
</form>


JS部分:

JS.FormSubmit('/index/data/submitTopic', '#Publish', function (data) {
if (data.status == 'ok') {
$.toast({
icon: 'success',
text: "发表成功",
showHideTransition: 'fade',
allowToastClose: true,
hideAfter: 1000,
stack: 3,
bgColor: '#ff4d00',
loaderBg: '#0182ac',
textAlign: 'left',
position: 'mid-center',
afterHidden: function() {
location.href='/index/page/helping-list?id='+$('#forum_id').val();
}
});
} else {
$.toast({
icon: 'error',
text: data.msg,
showHideTransition: 'fade',
allowToastClose: true,
hideAfter: 2000,
stack: 3,
textAlign: 'left',
position: 'mid-center',
afterHidden: function() {
dbClickFlag = true;
}
});
}
})



FormSubmit: function (url, selector, callback) {
$('body').on('submit', selector, function () {
var x = $(selector).serializeArray();
$.ajax({
type: "POST",
cache: false,
data: x,
url: url,
dataType: "json",
success: function (res) {
callback(res);
return false;
},
});
return false;
});
},


请问如何防止多次点击连续提交,onsubmit、双击标志变量等方法都试过了。没有成效,JS新手求大神指教
...全文
448 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
millionmanhjq 2017-03-17
  • 打赏
  • 举报
回复
引用 1 楼 qaz2499867 的回复:
再你调用 JS.FormSubmit(x,x,x)之前,加个变量区分一下就好了
不好意思,没有描述完整,第一段JS:JS.FormSubmit这个是$(document).ready(function() {内的,所以一直导致我比较困惑,区分变量是我一开始想到并且放弃的方法,以上。 感谢回复
millionmanhjq 2017-03-17
  • 打赏
  • 举报
回复
蠢了,忘了按钮可以设置disable了,最后解决方法如下: form增加onsubmit="return dbClick();"

var dbClickFlag = true;
function dbClick() {
            $("#Publish :submit").attr("disabled",true);
		    if(dbClickFlag){
		        dbClickFlag = false;
		        return true;
			}
			return dbClickFlag;
        };
在toast插件的afterHidden方法中移除disabled:$("#Publish :submit").removeAttr("disabled");
痛苦的火龙果 2017-03-17
  • 打赏
  • 举报
回复
再你调用 JS.FormSubmit(x,x,x)之前,加个变量区分一下就好了

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧