ActiveForm提交表单后如何才能不刷新页面 [ 2.0 版本 ]
需求:Modal提交表单后显示提交结果提示语,而不是跳转到action
目前的实现:js添加提交按钮事件,通过post提交数据,action返回json数据。如下
$js = <<<JS
$('#addWebsite').on('click', function(){
var url = $('#websiteform-url').val();
var sitename = $('#websiteform-sitename').val();
var data ={
'WebsiteForm' :{'url':url,'sitename':sitename}
};
$.post('{$websiteEditUrl}', data,
function (data) {
console.log(data);
//$('.modal-body').html(data);
}
);
return false;
});
JS;
重要的是“return fasle”,不加这行还是会刷新
问题:是否可以在ActiveForm配置中增加一个什么参数来决定该表单是否需要跳转还是仅显示提交结果。添加js略显麻烦。
场景:Modal提交用户信息成功后在该Modal中显示信息(增加显示用户ID)
seven8.me 补充于 2017-03-18 19:38
表单异步验证时也是请求的action,post数据,他是如何实现不跳转的呢。js不太熟,yii.activeform.js看不太明白
seven8.me 补充于 2017-03-20 18:56
试用了https://github.com/lichunqiang/yii2-ajaxform这个扩展,不错,能满足需求。可以自定义提交后的事件。
'ajaxSubmitOptions' => [
'success' => new JsExpression('function(response) {console.log(response)}'),
'complete' => new JsExpression('function(data) {$("#siteConfig").html(data.responseText);$("#website-modal").modal("hide")}')
],
可以很方便定义的刷新div,提示结果等等
最佳答案
其他 0 个回答
没有找到数据。
seven8.me
注册时间:2016-06-10
最后登录:2017-10-27
在线时长:4小时52分
最后登录:2017-10-27
在线时长:4小时52分
- 粉丝0
- 金钱140
- 威望0
- 积分180