3***@qq.com
3***@qq.com
  • 发布:2017-03-31 18:07
  • 更新:2021-03-29 09:16
  • 阅读:8345

MUI自带的picker组件,在设置默认值是出错的问题

分类:MUI

如题,mui自带的picker组件,在使用三级列表的时候,通过以下代码

// 设定省初始值  
                    cityPicker.pickers[0].setSelectedValue("320000");  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedValue("320200");  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedValue("320205");

弹出的来选择其中,默认值始终只能设置好省份的默认值,剩下的二级,三级选择器未能正确设置默认值。
如果采用

cityPicker.pickers[0].setSelectedIndex(9);  
                    // 设定市初始值  
                    cityPicker.pickers[1].setSelectedIndex(1);  
                    // 设定区初始值  
                    cityPicker.pickers[2].setSelectedIndex(5);

则能正常设置三级的默认值。
经过反复测试,我对picker.js的代码进行了修改。主要是修改了triggerChange部分的功能函数,如下

Picker.prototype.triggerChange = function(callback) {  
        var self = this;  
        var index = self.getSelectedIndex();  
        var item = self.items[index];  

        if(index != self.lastIndex) {  
            $.trigger(self.holder, 'change', {  
                "index": index,  
                "item": item  
            });  
        }  
        self.lastIndex = index;  
        typeof callback === 'function' && callback();  
    };

经过测试,终于可以正常使用setSelectedValue来设置三级的默认值。
另外,还添加了一个setSelectedText功能,就是按照setSelectedValue的功能进行改造的。目前没发现什么问题不知道会不会影响到什么地方

3 关注 分享
屋檐 q***@163.com 1***@qq.com

要回复文章请先登录注册

mistywood

mistywood

请问能分享一下setSelectedText的功能吗
2021-03-29 09:16
8***@gmail.com

8***@gmail.com

标题是uni-app点开以后是mui
2020-03-21 17:08
1***@qq.com

1***@qq.com

你很厉害!
2019-03-03 15:02