1***@qq.com
1***@qq.com
  • 发布:2017-03-09 17:20
  • 更新:2017-03-10 14:28
  • 阅读:4400

关于多级(多列)的PopPicker的选中问题

分类:MUI

两级的时候,使用 setSelectedValue 选中值,第一列可以选中,但是第二列不行。使用console.log(picker.getSelectedItems())打印出来 是

[Object, Object]
  0: Object
   children: Array[3]
   text: "天津市"
   value: "120000"
   __proto: Object
 1: Object
   \
proto: Object
 length: 2
 \
proto__: Array[0]

这样的,明显第二列的值没有选中到。

代码如下:

var picker = new mui.PopPicker({  
    layer: 2  
});  
picker.setData([{  
    value: '110000',  
    text: '北京市',  
    children: [{  
        value: "110101",  
        text: "东城区"  
    }]  
}, {  
    value: '120000',  
    text: '天津市',  
    children: [{  
        value: "120101",  
        text: "和平区"  
    }, {  
        value: "120102",  
        text: "河东区"  
    }, {  
        value: "120104",  
        text: "南开区"  
    }  
    ]  
}])  
picker.pickers[0].setSelectedValue("120000");  
picker.pickers[1].setSelectedValue("120102");  
//picker.pickers[1].setSelectedIndex(2);   //如果是使用这个就可以  
console.log(picker.getSelectedItems())  

/*picker.show(function(SelectedItem) {  
    console.log(SelectedItem);  
})*/
2017-03-09 17:20 负责人:无 分享
已邀请:
1***@qq.com

1***@qq.com (作者)

已解决:

如果是使用 setSelectedValue 的话,需要延迟一段时间后进行选中,如:
picker.pickers[0].setSelectedValue("120000");
setTimeout(function(){
picker.pickers[0].setSelectedValue("120102");
}, 100);

而如果是使用 setSelectedIndex 的话,没有延迟的问题。

  • 诗小柒

    setSelectedIndex 也是要延迟才可以的。

    2017-09-04 11:53

  • 1***@qq.com

    还是有问题,第一次设置成功之后,第二次设置又不好使了

    2018-01-02 23:49

该问题目前已经被锁定, 无法添加新回复