Yii2 ActiveForm 提交前显示 loading 状态
19-09-03 16:40
字数 1550
阅读 2172
已编辑
想要实现在点击提交按钮前,显示 loading 提示,代码如下
$('#article-form').on('ajaxBeforeSend', function (event) {
// ajax提交前做的事情
$("button[name=submit-button]").attr('disabled', true).html('<span class="spinner-border spinner-border-sm" role="status" aria-hidden="true"></span> Loading...');
}).on('ajaxComplete', function (event, jqXHR, textStatus) {
// ajax完成后做的事情
});
但是这么写你会发现,这两个回调都不会执行,只会执行 beforeSubmit
回调,查看 yii.activeForm.js 源码
if (needAjaxValidation && ($.isEmptyObject(messages) || data.submitting)) {
var $button = data.submitObject,
extData = '&' + data.settings.ajaxParam + '=' + $form.attr('id');
if ($button && $button.length && $button.attr('name')) {
extData += '&' + $button.attr('name') + '=' + $button.attr('value');
}
$.ajax({
url: data.settings.validationUrl,
type: $form.attr('method'),
data: $form.serialize() + extData,
dataType: data.settings.ajaxDataType,
complete: function (jqXHR, textStatus) {
$form.trigger(events.ajaxComplete, [jqXHR, textStatus]);
},
beforeSend: function (jqXHR, settings) {
$form.trigger(events.ajaxBeforeSend, [jqXHR, settings]);
},
...
会发现需要 needAjaxValidation
为 true 才会触发 ajaxComplete
、ajaxBeforeSend
这两个回调。所以,在你的表单中,需要加上这个 enableAjaxValidation
参数,才能使 needAjaxValidation
为 true
<?php $form = ActiveForm::begin(['id' => 'article-form', 'enableAjaxValidation' => true]); ?>
但是加上这个参数之后,你会发现,在你的鼠标失去焦点后,表单会自动提交,因为 还有一个参数 validationUrl
我们没有提供,如果不提供这个参数,那么他的默认值是当前的 url,所以最终我们需要这样写
<?php $form = ActiveForm::begin(['id' => 'article-form', 'enableAjaxValidation' => true, 'validationUrl' => 'validate-article-form']); ?>
这两个参数什么意思呢 enableAjaxValidation
顾名思义就是 启用 ajax 验证,validationUrl
则是验证的地址。
public function actionValidateArticleForm($id = null)
{
Yii::$app->response->format = \yii\web\Response::FORMAT_JSON;
$model = $id === null ? new Article() : Article::findOne($id);
$model->load(Yii::$app->request->post());
return ActiveForm::validate(new Article());
}
如果嫌麻烦可以不开启 enableAjaxValidation
,使用 beforeSubmit
也可以实现类似的效果。
客户端验证和ajax验证 https://www.yiichina.com/doc/guide/2.0/input-validation
0人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2024-11
1 篇
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
展开剩余 68 条
2024-01
1 篇
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
11-07 19:00
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
13 评论
11 评论
10 评论