laravel-admin解决表单SELECT联动时,编辑默认没选上
2018-12-30 10:04
2546 查看
今天在开发公司一个功能时,公司开发环境用的是laravel-admin,因为需要用上select联动,所以根据文档说明进行开发,并成功的使用上了,代码我就不重复,大家可以去参考laravel-admin官网的说明。
首先我们找到select的js,路径:跟目录/vendor/encore/laravel-admin/src/Form/Field下的Select.php文件,找到下面代码:
[code]$script = <<<EOT $(document).on('change', "{$this->getElementClassSelector()}", function () { var target = $(this).closest('.fields-group').find(".$class"); $.get("$sourceUrl?q="+this.value, function (data) { target.find("option").remove(); $(target).select2({ data: $.map(data, function (d) { d.id = d.$idField; d.text = d.$textField; return d; }) }).trigger('change'); }); }); EOT;
并修改成以下代码:
[code]$script = <<<EOT $(document).on('change', "{$this->getElementClassSelector()}", function () { var target = $(this).closest('.fields-group').find(".$class"); $.get("$sourceUrl?q="+this.value, function (data) { target.find("option").remove(); $(target).select2({ data: $.map(data, function (d) { d.id = d.$idField; d.text = d.$textField; return d; }) }).trigger('change'); }); }); $('{$this->getElementClassSelector()}').trigger('change'); EOT;
我们在原有代码中加入这句:
[code]$('{$this->getElementClassSelector()}').trigger('change');
作用就是在初始化的时候触发一次联动。
然后在我们的表单中,我们再来定义编辑初始时候的值,代码如下:
[code]$form->select('hezuo', "合作模式")->options(function () { $record = request()->route()->parameters(); $record = $record["chanpin"]; $data = ChanpinModel::where('id', $record)->first(); $hezuoList = array( "1" => '测试1', "2" => '测试2', "3" => '测试3', ); $hezuo = $data->hezuo; return [$hezuo => $hezuoList[$hezuo]]; });
这段代码是根据当前记录的值,去获取对应所属那个选项,这样便使select联动编辑时,能够默认选上我们的值。
更多文章请关注微信公众号
相关文章推荐
- laravel-admin 自定义导出表单
- 在DataGrid里面绑定ComboBox列时无法在编辑模板下默认选中一个备选值的一种解决方法
- 关于enter不触发默认的表单提交问题的解决
- 后台传值让select默认加载到对应的选项的解决方法(EJS)
- springMVC 表单联动处理 点击radio联动改变select选项
- 公众号门店管理开发,实现select表单省市县三级联动1
- 去掉或者修改 input、select 等表单的【默认样式 】
- 参数表单下拉数据集多选联动问题及解决办法
- jQuery select表单提交省市区城市三级联动核心代码
- 公众号门店开发,实现select表单省市县三级联动2
- 使用mobile jQuery 动态给select下拉添加数据,选中项默认不显示的解决方法。
- 解决表单乱码问题之一,修改tomcat默认编码格式
- jQuery select表单提交省市区城市三级联动
- easyui edatagrid 在编辑状态下表头与表单错位的解决方法
- Laravel框架 -- Select无限分类下拉框样式以及默认选中
- jqGrid 行编辑 select 3级联动 的一种实现方法
- CSS3 重置iphone浏览器按钮input,select等表单元素的默认样式
- 解决form表单 select disable 不能提交难题
- angularjs select 选择默认显示空白以及第一行空白的解决方法