目录
▸
入门
简介
安装
1.x升级指南
版本升级
快速开始
开发前必读
主题与颜色
静态资源
视图与自定义页面
多应用(多后台)
JS组件
常见问题
Laravel Octane
▸
数据表格
基本使用
列的使用和扩展
列的显示和扩展
行的使用和扩展
工具栏
树状表格
组合表头
数据来源以及查询条件
关联关系
查询过滤
列过滤器
快捷搜索
规格筛选器
数据导出
快捷创建
行内编辑
事件
字段翻译
数据软删除
头部和脚部
表格异步渲染
▸
数据表单
基本使用
图片/文件上传
字段的使用
字段扩展
数据源
表单弹窗
关联关系
JSON表单
分步表单
表单验证
工具表单
事件以及表单响应
初始化
表单布局
字段翻译
字段动态显示
▸
数据详情
基本使用
字段显示
关联关系
字段显示扩展
初始化
字段翻译
▸
模型树
基本使用
▸
数据仓库
基本使用
▸
动作
基本使用
数据表格
数据表单
数据详情
模型树
▸
多语言
基本使用
▸
开发扩展
扩展基本使用
开发扩展
▸
页面组件
异步加载
图表
数据统计卡片
模态窗(Modal)
工具表单
下拉菜单
单/复选框
选项卡
警告框
提示窗
Markdown
卡片
▸
区块
区块基本使用
▸
动作以及表单响应
动作以及表单响应
▸
权限控制
权限控制
▸
菜单
菜单基本使用
▸
帮助函数
帮助函数
▸
开发工具
基本使用
▸
自定义登陆认证
自定义登录
▸
自定义头部导航
自定义头部导航条
▸
更新日志
BETA版本更新日志
更新日志
内容导航
1.x
2.x
字段动态显示
创建时间:2024-06-26 14:12:56 / 更新时间:2024-06-26 14:12:56
# 表单字段动态显示 表单字段动态显示是指,在选择表单项的指定的选项时,联动显示其他的表单项。 ![](http://docs.oneself.icu:10010/storage/markdown/images/3b65c7998d7e5ae17169a1285266e55d667bb165ac7c7.gif) > 此功能在[工具表单](https://learnku.com/docs/dcat-admin/2.x/tools-form/8125)中一样有效 目前支持的表单联动的组件有: - `select` - `multipleSelect` - `radio` - `checkbox` ## 使用方法 可以将上面的组件分为单选和多选两种类型,其中`select`、`radio`为单选组件,其它为多选组件 > 需要注意同个表单中不能出现同名字段,否则前面的字段会被后面的覆盖! ### 单选组件 下面的例子中,选择不同的国籍类型,将会切换选择不同的联动表单项: ```php $form->radio('radio') ->when([1, 4], function (Form $form) { // 值为1和4时显示文本框 $form->text('text1'); $form->text('text2'); $form->text('text3'); }) ->when(2, function (Form $form) { $form->editor('editor'); }) ->when(3, function (Form $form) { $form->image('image'); }) ->options([ 1 => '显示文本框', 2 => '显示编辑器', 3 => '显示文件上传', 4 => '还是显示文本框', ]) ->default(1); ``` 上例中,方法`when(1, $callback)`等效于`when('=', 1, $callback)`, 如果用操作符`=`,则可以省略这个参数 同时也支持这些操作符,`=`、`>`、`>=`、`<`、`<=`、`!=`使用方法如下: ```php $form->radio('check') ->when('>', 1, function () { })->when('>=', 2, function () { }); ``` `select` 组件的使用方法和`radio`是一样的。 另外需要注意的是,如果使用动态显示功能之后表单不能使用`required`方法,应该使用`required_if`代替,如 ```php $form->radio('type') ->when([1, 4], function (Form $form) { $form->text('text1') ->rules('required_if:type,1,4') // 使用required_if ->setLabelClass(['asterisk']); // 显示 * 号 }); ``` ### 多选组件 多选组件支持两个操作符:`in`、`notIn` ```php $form->checkbox('nationality', '国籍') ->options([ 1 => '中国', 2 => '外国', ])->when([1, 2], function (Form $form) { $form->text('name', '姓名'); $form->text('idcard', '身份证'); })->when('notIn', 2, function (Form $form) { $form->text('username', '姓名'); $form->text('passport', '护照'); }); ``` `multipleSelect`组件的使用方法和`checkbox`是一样的。 ### 布局 表单动态显示功能支持结合`column`以及`tab`布局功能一起使用,用法如下 `tab`布局 ```php $form->tab('Radio', function (Form $form) { $form->display('title')->value('单选框动态展示'); $form->radio('radio') ->when([1, 4], function (Form $form) { $form->text('text1'); $form->text('text2'); }) ->when(2, function (Form $form) { $form->editor('editor'); }) ->options($this->options) ->default(1); }); ``` `column`布局 ```php $form->column(6, function (Form $form) { $form->radio('radio') ->when([1, 4], function (Form $form) { $form->text('text1'); $form->text('text2'); }) ->when(2, function (Form $form) { $form->editor('editor'); }) ->options($this->options) ->default(1); }); ```
上一文章
下一文章
返回顶部
返回主页
返回文档展示页