如题,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 个评论
要回复文章请先登录或注册
mistywood
8***@gmail.com
1***@qq.com