在做验证的时候,其它组件的验证都好好的,就el-autocomplete一直验证不了,选了值还是有提示,它检测不到,找了很久,终于把它解决了,记录一下。
一开始是这样的
选了还是没有效果。
解决方法:
此处的customerList是下拉选项查出来的list,把它赋值给另外一个list里面,才有用,不然没效果(原因我也不知道)。
function isInArray(arr, value) { // 判断是否在数组中有该选项的方法,也可以用es6的some方法for (var i = 0; i < arr.length; i++) {if (value === arr[i]) {return true}}return false}const validateId = (rule, value, callback) => {this.customerList.forEach(item => {this.customersList.push(item.value)})console.log(this.customersList)if (isInArray(this.customersList, this.input)) {callback()} else {callback(new Error(\'请选择客户\'))}};
input: [{validator: validateId,trigger: [\'blur\', \'change\']}]
<el-autocomplete class=\"inline-input infowidth\" v-model=\"input\" :fetch-suggestions=\"querySearch\"placeholder=\"请输入内容\" @select=\"handleSelect\"></el-autocomplete>
最后的效果:
这样就解决了。