返回知识库

界面与交互 · 操作与输入

级联选择Cascader

上一级的选择决定下一级能选什么;改上级要清掉失效的下级,最终提交的是省市区连成的完整路径。

逐级选省市区:结果长在地址卡上

级联选择把有从属关系的数据按路径拆开;下一级出现什么,取决于上一层的选择。亲手选省、市、区,观察改省时旧的市和区被清掉,完整路径长在地址摘要卡上。

第 0 步:这是「收货地址」的省市区级联。逐级选择,观察三件事——选省后市才启用、改省时旧的市和区被清掉、完整路径长在地址摘要卡上。

入口:选了省才有市。
未选省,城市不可选。
未选市,区不可选。

对照:省份是入口,市和区都灰着。原因:级联里下级选项由上级决定,未选上级时下级不可选。下一步:先选省份。

收货地址 · 随逐级选择即时变地址不完整
配送大区
预计送达
当前状态
未选择

改省或改市,下面的市、区和这份摘要会一起变——结果长在物件上,不只靠底部说明。

面板教会的知识点

把刚才操作里看到的现象命名为六条规则。

  • 上级决定下级范围:选了省,市级才出现对应的候选;未选省时市和区不可选。
  • 改上级清下级:切换省份时,原来的市和区一起复位,不会残留旧省的无效值。
  • 未选上级时下级说明原因:市、区在禁用同时给出「先选省份 / 先选城市」的提示,不是悄悄灰掉。
  • 最终值是完整路径:地址摘要卡显示省市区连成的完整路径,而不是只留最后一级「西湖区」。
  • 不完整可被校验锁住:只选到省或市就提交,会被锁并指明下一步,不让残缺地址混过去。
  • 逐级即时反馈:每选一级,配送大区、预计送达和状态徽章在地址卡上立刻变。

什么时候用级联选择

从数据是否有从属关系判断,而不是看控件长什么样。

适合

选项之间有明确的层级或从属关系——省市区、商品类目(大类 → 子类 → 叶子)、组织 → 部门 → 小组。

先别用

层级只有一级(→ 单选 / 选择器)、选项互相独立无从属(→ 多选 / 标签)、或层级极深且要并行对比(→ 树形选择)。

怎么用:从标签到完整路径

最短路径——逐级选、看清路径、处理好联动和重选。

  1. 用 label 写清在选什么;每一级 select 显示当前值或占位,不靠记忆。
  2. 未选上级时下级 disabled,并标注「先选 X」的原因,不要静默灰掉。
  3. 变更上级时立即清除失效下级,并用状态或路径说明发生了什么。
  4. 提交前展示完整路径作为最终值;搜索同名地区时也返回完整路径,避免歧义。
  5. 窄屏改为逐级面板:选完一级进入下一级,提供返回上一级,不要把多列硬塞进小屏。

正反例:同一个「收货地址」需求

只改一个关键判断——三个下拉是否联动。

正例

省市区做成级联:选了浙江省才出浙江的城市,改省时旧市和旧区清掉,提交的是完整路径「省 / 市 / 区」。

反例

把省市区拆成三个独立、互不联动的下拉:改了省,市和区仍是旧省的值,提交出「江苏省 / 杭州市 / 西湖区」这种跨省拼凑的错地址。

快速自测

用户已选「浙江省 / 宁波市 / 鄞州区」,随后把省份改成「江苏省」,市和区应当怎样处理?

继续查证

术语的技术定义和行为以这些一手或权威资料为准。

下一步学

和本知识点经常一起出现的概念。