在使用layui 第三方控件xm-select时发现,getValue()始终获取不到值,在这之前是先调用了setValue()方法的,但是在后续代码中使用getValue()又可以获取到值了!还真是奇怪!
具体问题如下:
在调用setValue()方法后不能使用getValue()获取到数据
console.log(xmSelectOption.realm.instance.setValue(data)); //这里因需要先设置了一个值
console.log(xmSelectOption.realm.instance.getValue()); //在调用getValue时获取到的是[],空数组
//... 这里是若干行代码
console.log(xmSelectOption.realm.instance.getValue()); //这时调用getValue获取数据提交表单时又可以获取到数据了!
思想:
setValue()方法还未执行完,或加载完,getValue()已经执行获取,所以获取到空数据,但后续在获取时能获取到数据是因为此时下拉框的值已经成功被赋值了,所以又可以获取到数据了!
解决方法:
采用延时执行getValue()的方法
//这里经过测试,仅仅延时了1毫秒就可以成功获取到数据! 若仍获取不到,可以尝试适当延长延时时间
setTimeout(function (){
console.log(xmSelectOption.realm.instance.getValue());
}, 1);