#### 跳转js执行机制 ```php 可通过$this->success('修改成功', 'javascript:js代码') 的方式,让页面提交后执行对应的js代码。 该方法仅对使用ajax-post和ajax-form的页面有效。 使用场景举例: 当翻页后,对列表数据进行编辑操作,编辑成功后希望页面跳回之前的页码。 $this->success('修改成功', 'javascript:location.href=document.referrer;'); ``` #### 获取当前列表选中checkbox的值 ```blade var ids = $(".check-all").data('checkedIds'); ``` #### select2_ajax ```blade 根据API重置select2组件的值 参数 select_dom:dom select2元素节点 url:string 获取数据的API,需返回数据格式:['total_count' => 12,'data' => [['id' => 1, 'text' => 'text']]] query:json 筛选API的参数,search为dom的值,pageSize最小值为20,最少会包括的参数有:search=xxx&page=1&pageSize=20,数据格式:{pageSize: "{:C('ADMIN_PER_PAGE_NUM')}"} ``` 代码示例 ```php // API public function getLibrary($city){ $search = I('search'); $page = I('page'); $page == '' && $page = 1; $pageSize = I('pageSize'); $pageSize == '' && $pageSize = 20; $map['status'] = DBCont::NORMAL_STATUS; $map['city'] = $city; if ($search){ $map['name'] = ['like', "%{$search}%"]; } $library_name = D('Library')->where($map)->field(['id, name'])->page($page, $pageSize)->select(); $total_count = D('Library')->getListforCount($map); $lib_data = []; foreach ($library_name as $k => $v){ $lib_data[$k]['id'] = $v['id']; $lib_data[$k]['text'] = $v['name']; } $data = [ 'total_count' => $total_count, 'data' => $lib_data, ]; $this->ajaxReturn($data); } // js使用代码 var city = $('input[name=city]').val(); var query = { city:city, pageSize: "{:C('ADMIN_PER_PAGE_NUM')}" }; select2_ajax($('.select-two'), "{:U('getLibrary')}", query); ``` #### setCheckedIds ```blade 将当前列表选中checkbox的值赋值到自定义dom的data-checkedIds中。 参数 $this:dom 当前列表checkbox元素节点 selectIds:array 当前列表选中checkbox的值 valDom:string 存放selectIds转换成字符串的元素节点,默认为:.check-all ``` #### ajax-form 1. 重写提交成功后的信息展示效果 在需要重写的页面执行以下代码, 回调里写客制化代码 ``` jQuery.data(document.querySelector('.ajax-form'), 'showMsg', function(info){ //信息展示代码 //todo something }); ``` 2. 关闭提交成功后的reload页面效果 给form元素设置属性 reload='false'