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就可以。

发表评论

必填项已用*标注