weui datePicker defaultValue 设置无效的解决
weui的datePicker初次设置defaultValue是有效的,但第二次或第N次设置是无效的,默认值都是上次的选中值,若一个页面使用2次或以上控件,体验非常不友好,下面是解决办法。
//获取当前时间
var date = (function(){
var date = new Date();
var year = date.getFullYear();
var month = date.getMonth() + 1;
var day = date.getDate();
month = month < 10 ? '0' + month : month;
day = day < 10 ? '0' + day : day;
return year + '-' + month + '-' + day;
})();
//第一个日期控件
$('#date_1').on('click', function(){
var val=$(this).val();
var defaultValue = val ? val : date;
weui.datePicker({
id: 1,//指定不同的id
start: new Date().getFullYear() - 20,
end: new Date().getFullYear(),
defaultValue: defaultValue.split('-'),
onConfirm: function(result){
$('#date_1').val(result[0] + '-' + (result[1] < 10 ? '0' + result[1] : result[1]) + '-' + (result[2] < 10 ? '0' + result[2] : result[2]));
}
});
});
//第二个日期控件
$('#date_2').on('click', function(){
var val=$(this).val();
var defaultValue = val ? val : date;
weui.datePicker({
id: 2,//指定不同的id
start: new Date().getFullYear() - 20,
end: new Date().getFullYear(),
defaultValue: defaultValue.split('-'),
onConfirm: function(result){
$('#date_2').val(result[0] + '-' + (result[1] < 10 ? '0' + result[1] : result[1]) + '-' + (result[2] < 10 ? '0' + result[2] : result[2]));
}
});
});
最终结论:只要为option的配置指定不同的id就可以。