码迷,mamicode.com
首页 > 其他好文 > 详细

yii2-lock-form 也许这就是你想要的,阻止表单多次提交

时间:2016-02-04 18:23:09      阅读:609      评论:0      收藏:0      [点我收藏+]

标签:

是不是被用户的行为所困扰?

一个表单用户点击提交按钮了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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!