select下拉选择框中有多个option值,选中一个下拉值之后,再代码设置一个不存在的option值,但显示的还是原来的option选中值,能否将选中的值清空或者提供一个清空选中值的方法。引发的另一个问题是:设置一个不存在的值的情况下,clearable的select选择框右边的clear按钮也不显示了。
其实我原本目的是清空选中的值,修改v-model的值为空字符串但无效果。当前有个clearable的选项,但没有函数清空选中值,希望有个empty的函数或者自动响应v-model的不存在值(还有空值)的变化。
「修改 v-model 的值为空字符串」是可以清空的。是需要清空单选还是多选?如果是多选的话,需要修改 v-model 的值为空数组。
select下拉选择框remote模式下
如果手动点击选择了某个option,修改v-model为空字符串可以清空
如果是加载后的默认值,修改v-model为空字符串不能够清空显示的值
我在用select单选的时候也遇到一个问题:
有select:a 和select:b
当a change事件触发时,将b的选择清空(!)
这个behabior无法完成,b的v-model绑定的值设为空字符串了,仍然无法清空
@leegoway 你的问题后面会修掉。
@Noemi- 这个需求我写了个 demo:https://jsfiddle.net/kt0xzdhy/ ,是可以工作的,你看一下和你的用法有哪里不一样。
@Noemi- 我那个需求跟你的差不多,跟 @Leopoldthecoder 的demo也类似,是可以工作的。
但如果预先设置了select:b默认值,select:a变更的时候,修改select:b的v-model,是无法清空的,已被标记为bug
@Leopoldthecoder 谢谢你的demo~ 不过我这边使用的场景比较不方便用jsfiddle重现出来。
场景:
select b 绑定的options是来自mapstate里的state.value1,每次select a变化以后,mapstate里返回的state.value1会发生变化,这个时候,如果在state.value1变化之前清空select b里的值,清空将不会生效,select b选中的值还是显示之前的选中。
你方便的话可以试一下这种场景,不知道是什么原因导致的:(
尝试了一下,select的从data()来的初始值可以通过赋值空字符串来清空。但是如果mounted对select进行赋值的话,后续赋空字符串无法清空select。
@nivekz fixed in #957
@leegoway 哈哈,我前两天遇到跟你一模一样的问题,后来我说服策划把另一个select改成了input。。
Most helpful comment
@Noemi- 我那个需求跟你的差不多,跟 @Leopoldthecoder 的demo也类似,是可以工作的。
但如果预先设置了select:b默认值,select:a变更的时候,修改select:b的v-model,是无法清空的,已被标记为bug