faryshta / yii2-disable-submit-buttons
Yii2 资产,用于自动禁用 Yii2 ActiveForm 中的提交按钮。
Requires
- php: >=5.6
- yiisoft/yii2: ~2.0.0
Requires (Dev)
This package is not auto-updated.
Last update: 2024-09-14 18:20:45 UTC
README
Yii2 资产,用于自动禁用 Yii2 ActiveForm 中的提交按钮。
安装
安装此扩展的首选方式是通过 composer。
运行以下命令之一:
composer require "faryshta/yii2-disable-submit-buttons:~2.0.0"
或者
"faryshta/yii2-disable-submit-buttons": "~2.0.0"
将以下内容添加到您的 composer.json
文件的 require
部分:
注册资产
注册 faryshta\disableSubmitButtons\Asset
,最好在您的 AppAsset
依赖项中注册。
use faryshta\disableSubmitButtons\Asset as DisableSubmitButtonAsset; class AppAsset extends yii\web\AssetBundle { public $depends = [ DisableSubmitButtonsAsset::class, // other dependencies ]; }
使用方法
将 css 类 disable-submit-buttons
添加到您的 [ActiveForm] (https://yiiframework.cn/doc-2.0/yii-widgets-activeform.html) 小部件。
如果需要更改按钮上的文本,可以添加属性 data-disabled-text
并指定要更改的文本。
$form = ActiveForm::begin([ 'options' => ['class' => 'disable-submit-buttons'], // other configurations ]); // inputs Html::submitButton('Submit', [ // optional, will show the value of `data-disabled-text` attribute // while handling the validation and submit 'data' => ['disabled-text' => 'Please Wait'] ]) $form->end();
这样,:input[type="submit"]
按钮将被禁用,如果验证失败,按钮将被再次启用。
JavaScript
此资产为 jQuery 添加了 2 个方法 disableSubmitButtons()
和 enableSubmitButtons()
,这些方法可以从 ActiveForm 小部件生成的 <form>
标签中调用。
Ajax 示例
以下示例使用 Ajax 提交表单,并在完成 Ajax 请求后启用提交按钮,以便用户可以发送另一个表单。
$form = ActiveForm::begin([ 'id' => 'ajax-form', 'options' => ['class' => 'disable-submit-buttons'], ]); echo $form->field($model, 'name'); echo Html::submitButton('Submit', [ 'data' => ['disabled-text' => 'Validating'], ]); $form->end(); $this->registerJsFile('ajax-form.js');
然后在 ajax-form.js
$('#ajax-form').on('beforeSubmit', function () { var $yiiform = $(this); $.ajax( { type: $yiiform.attr('method'), url: $yiiform.attr('action'), data: $yiiform.serializeArray(), } ).done(function(data) { // success actions $yiiform.enableSubmitButtons(); // enable the submit buttons }); return false; // prevent default form submission });
实时演示
您可以使用以下 composer 命令运行此库的实时演示:
composer deploy-tests composer yii serve
许可证
BSD 许可证(BSD)。有关更多信息,请参阅 许可证文件。