因为服务器响应比较慢,用户提交表单后会等待一段时间,可能会造成用户以为没反应重复的点击提交按钮。onclick="this.disabled=true" 这个不能用,因为当表单有些字段不符合要求的话会弹出提示,表单没提交,但这时按钮已经变成不可用了。
请问有其它办法吗?
ringa_lee2017-04-10 17:46:26
我是用ajax提交,当用户提交表单的时候把按钮设为disabled,请求http成功后,服务器给客户端响应信息时,再去掉disabled属性。由于你的服务器响应比较慢,最好在请求http的时候,加一个动态效果(比如:加载中...,等等),同样请求成功后隐藏动态效果,个人认为这样给用户的体验感比较好。当然用验证码也可以有效防止表单重复提交。但是看场咯。
怪我咯2017-04-10 17:46:26
用过一个比较蠢得办法 js中添加一个变量 当点击的时候判断变量的值 点击后这个值变为false 然后直到返回结果或者提示出错 将这个值变成true 下次就可以继续点击了
巴扎黑2017-04-10 17:46:26
button.disabled = true;
$.ajax({...}).done(function () {
buton.disabled = false;
});
怪我咯2017-04-10 17:46:26
在外部写一个 loading 层的方法,在点击的时候 触发这个方法的 evnet_getLoading 给按钮添加一个loading p,ajax后 在 commple 里面 触发一个 event_cancelLoading 的方法 把 loading p 移除。