//保险公司选择
var carTypeOpt = [{
value: '0',
text: '平安汽车保险'
}, {
value: '1',
text: '阳光汽车保险'
}, {
value: '2',
text: '中国人保汽车保险'
}, {
value: '3',
text: '中华联合汽车保险'
}, {
value: '4',
text: '天安汽车保险'
}, {
value: '5',
text: '太平洋汽车保险'
}];
// 选择保险公司
var companyPicker = new mui.PopPicker();
var companySelect = document.getElementById('editinsurance_company');
var insurance_company = document.getElementById('insurance_company');
companyPicker.setData(carTypeOpt);
for (var i = 0; i < carTypeOpt.length; i++) { //遍历车型数组,返回id
if (insurance_company.value == carTypeOpt[i].text) {
companyPicker.pickers[0].setSelectedIndex(carTypeOpt[i].value); //使modelsPicker默认显示所选项
//TODO 此处应直接使用modelsPicker.pickers[0].setSelectedValue(carTypeOpt.value) 但是不工作
}
}
companySelect.addEventListener('tap', function(event) {
companyPicker.show(function(items) {
insurance_company.innerText = items[0].text;
saveJson = '{"insurance_company":"' + items[0].text + '"}';
console.log(mklog() + '|//TODO NEED AJAX:' + saveJson);
});
}, false);
我用setSelectedIndex好用了,但是需要自己遍历一遍id,效率太低了
传说中的setSelectedValue,我就没能用过,给他啥都不吃
13 个回复
最佳回复
houfeng2016
Picker (这是指 PopPicker) 创建实例并填充数据后,可以设定每个层级的选中项,因为 PopPicker 是支持多层级联的,所以,可通过 instance.pickers[index] 拿到指定层级的实例,然后,通过 setSelectedIndex 或 setSelectedValue 设定指定层级的选中项,如下代码供参考:
PopoApple (作者)
可以了,谢谢!提个意见,你们的官网应该全面的提供这些API文档呀,要不别人没法用
露珠
设置第二个默认值需要延时,如下图,请将此设置方法写到文档中
PopoApple (作者)
还有,我想设置一个参数,就是每个项的高度,我看到代码里是这个变量:DEFAULT_ITEM_HEIGHT = 30,但是找来找去也没找到有对外接口可以设置它,难道要改源码吗?
houfeng2016
这个值没有公开 API
2015-09-15 20:08
houfeng2016
你用的哪个版本?DEFAULT_ITEM_HEIGHT 值应该是 40 的,另外,item 的 height ,通过样式定义即可,picker 组件会尝试获取 offsetHeight ,取不到时才会使用 DEFAULT_ITEM_HEIGHT
2015-09-16 17:05
近水楼台
好像pk.pickers[index].setSelectedValue(itemValue);这个对于三级联动只能设置第一列的默认值,其他两列的都还是默认在第一个数据上?
别闹我有枪
cityPicker.pickers[0].setSelectedValue(130000);
setTimeout(function(){
cityPicker.pickers[1].setSelectedValue(130200);
},100);
我侧过了,就是选择完第一个第二个效果还没显示完,所以不选择,设个延时就好了。希望对以后的朋友有帮助。
2016-05-17 09:58
近水楼台
回复 别闹我有枪:666
2016-12-26 21:58
近水楼台
也是不太清楚哪里出问题了0 0
近水楼台
cityPicker3.pickers[0].items是有值...
2015-10-29 16:28
qmit
请问你是怎么解决的呢?
2016-07-22 23:37
Che001
在mui.poppicker.js中的 show方法中 设置是可以的。
例:
self.pickers[0].setSelectedIndex(1);
self.pickers[1].setSelectedIndex(2);
self.pickers[2].setSelectedIndex(3);
好冷 - 诚接外包,QQ:23380891
我用setSelectedIndex好用了,但是需要自己遍历一遍id,效率太低了
传说中的setSelectedValue,我就没能用过,给他啥都不吃
井盖被盗小心
人家说的是三级那种
2016-01-13 14:11
井盖被盗小心
按索引来,嵌套,不过效率低
var Province = doc.getElementById("ProvinceHid").value;
var City = doc.getElementById("CityHid").value;
var Area=doc.getElementById("AreaHid").value
bufan
mui 联动选择初始化很多人都遇到问题,就是setselectedvalue 不好用,实际上这个地方应该是有bug的
所以只能用setselectedindex 来实现
具体实现可参考
http://www.cnblogs.com/bindot/p/muipick.html
中华人民共和国
选择第二个级联的可以将代码写在如下位置:
cityPicker.setData(cityData);
cityPicker.pickers[0].setSelectedValue('120000');
cityPicker.pickers[1].setItems(cityPicker.pickers[0].getSelectedItem().children);
cityPicker.pickers[1].setSelectedValue('120105');
露珠
同问,设置二级默认值不起作用setSelectedValue,求解
xulboy
楼上正解,支持一下