标签:
是不是被用户的行为所困扰?
一个表单用户点击提交按钮了N次,这也导致了数据提交了N次。
为了此受到了测试的欺辱,受到了老板的批评?
不用怕,它就是来拯救你的。
第一步:打开命令行,敲入 composer require light\yii2-lock-form=~1.0.0
第二步:上个厕所
第三步:如果你的项目中已经使用了 yii2-bootstrap
, 那么好,只需要在的你的 AppAsset
「whatever, 只要你全局依赖的就成」
轻轻的敲入:
‘depends‘ => [ //other depends ‘light\widgets\LockBsFormAsset‘ ]
如果你没使用 yii2-bootstrap
也能满足您:你只需要将 light\widgets\LockBsFormAsset
替换成 light\widgets\LockFormAsset
.
还需要做什么?
如果还需要做的话,那就是定制一下 Lock 用语,
Html::submitButton(‘提交‘, [‘data-loading-text‘ => ‘正在提交数据, 不让你点,哼‘])
说了这么多,东西在那儿?
https://github.com/lichunqiang/yii2-lock-form
重要的事情要说三遍:star,star, star, little star, 一闪一闪亮晶晶。
GetYii 目前的做法是简单粗暴的做法,在全局 js 中添加下面 js:
// 防止重复提交 $(‘form‘).on(‘beforeValidate‘, function (e) { $(‘:submit‘).attr(‘disabled‘, true).addClass(‘disabled‘); }); $(‘form‘).on(‘afterValidate‘, function (e) { if (cheched = $(this).data(‘yiiActiveForm‘).validated == false) { $(‘:submit‘).removeAttr(‘disabled‘).removeClass(‘disabled‘); } }); $(‘form‘).on(‘beforeSubmit‘, function (e) { $(‘:submit‘).attr(‘disabled‘, true).addClass(‘disabled‘); });
来源:http://www.getyii.com/topic/261
yii2-lock-form 也许这就是你想要的,阻止表单多次提交
标签:
原文地址:http://www.cnblogs.com/yhdsir/p/5181816.html