el-cascader选择省市区 单个选择

该文章展示了如何在Vue.js应用中使用el-cascader组件,通过ref进行引用,change事件处理数据变化,v-model绑定选择的值,并配置propsData以自定义显示和值的属性。示例中,用户选择的省市区信息会更新到params.address。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<el-cascader ref="selectRef" @change="handleChangeCasca" v-model="params.address" :props="propsData" :options="data.options" placeholder="请选择省市区"/>
	const propsData = reactive({
        checkStrictly: true,
        label: 'name',
        value: 'code',
        children: 'childer',
    });
    const selectRef = ref<any>();
    // 当选择的数据发生变化时
    const handleChangeCasca = (value: any) => {
        params.address = value;
    };
### 关于 `el-cascader` 组件配置 为了使 `el-cascader` 组件能够只选择子级选项并支持顶级选项的回显,可以采用特定属性和事件处理机制来达成目标。下面提供一种可行的方法。 #### 设置 Props 属性 在定义 `el-cascader` 的时候,可以通过设置 `props` 来控制组件的行为。对于本需求而言,重要的是要调整 `checkStrictly` 和 `emitPath` 这两个参数: - **`checkStrictly`**: 当此值设为 true 时,允许任意节点被选中而不仅仅是叶子节点。 - **`emitPath`**: 如果将其设定为 false,则返回最终选定项而非整个路径数组。 ```javascript const props = { expandTrigger: 'hover', checkStrictly: true, emitPath: false }; ``` #### 处理 Change 事件 当用户做出选择后触发 change 事件,在这里可以根据业务逻辑进一步筛选或验证输入。例如,确保只有选择了最底层的孩子节点才会更新模型数据。 ```vue <template> <div id="app"> <!-- 使用v-if重新渲染组件 --> <el-cascader v-if="showCascader" ref="cascaderAddr" :props="props" placeholder="请选择省市区" @change="handleChange" v-model="selectedValue" ></el-cascader> </div> </template> <script> export default { data() { return { showCascader: true, selectedValue: null, props: { multiple: false, // 不允许多选 checkStrictly: true, emitPath: false } }; }, methods: { handleChange(value) { console.log('Selected value:', value); // 清除之前的选中状态 this.$refs.cascaderAddr.dropDownVisible = false; setTimeout(() => (this.showCascader = false), 0); this.$nextTick(() => (this.showCascader = true)); } } } </script> ``` 上述代码片段展示了如何利用 Vue.js 结合 Element UI 实现所需的功能[^1]。通过这种方式,不仅可以限定只能选择最低级别的项目,而且还能正确显示单个级别(即一级)的选择结果。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值