我先阐述一下我遇到这个问题时的需求
它是一个FormItem包裹着的Select组件,需求是可以输入内容并且输入的长度不可以大于20,输入的内容可以是任意字符。输入内容后如果有历史记录就可以选择。
遇到的问题:
1. 更换FormItem为Input组件,但是Input组件不能嵌套其他组件
2. 想到了用AutoComplete组件替换,绑定数据依然用v-module,绑定数组用 :data="array",这个组件实现了历史记录的展现,但是它不能限制输入内容的长度
3. 利用FormItem组件的porp属性,为它增加一个正则的规则,但是由于我才疏学浅,不会,办不到
最后,我用了一个if判断解决了这个问题,但不是很完美
用一个布尔值来作为条件
判断的条件就是字符串的长度,对,字符串也有length属性。我的条件是 当字符串长度小于20的时候可输入、并且可选择;布尔值=true;
当字符长长度大于20时,布尔值=false;此时FormItem中包裹的组件就不是Select组件了,我换成了Input组件(因为只有FormItem是不可以的),当Input输入框聚焦时我又将布尔值=true这样,他就可以依然像初始时一样进行输入、选择了