BootStrap时间选择框架出现1899解决办法

本文介绍了解决日期选择器显示1899年的问题及输入框只读设置的方法。通过调整日期选择器配置,取消强制解析,并采用隐藏域存储日期值来避免错误显示。同时为确保用户体验,将输入框设为只读。

会出现1899的情况:

  1. 选选完时间之后再次打开会出现

解决方案:加上红色部分代码,取消强制转化,

$('#inputStartDate').datetimepicker({
        format: "yyyy-mm-dd hh:ii:00",
        autoclose: true,
        todayBtn: true,
        minuteStep: 5,
        forceParse: 0
    }).on('changeDate', function(ev){
            var startDate = $('#inputStartDate').val();
            $('#inputEndDate').datetimepicker('setStartDate', startDate);
    });
    $('#inputEndDate').datetimepicker({
        format: "yyyy-mm-dd hh:ii:00",
        autoclose: true,
        todayBtn: true,
        minuteStep: 5,
        forceParse: 0
    }).on('changeDate', function(ev){
            var endDate = $('#inputEndDate').val();
            $('#inputStartDate').datetimepicker('setEndDate', endDate);
    });
  1. 进入编辑页面时,时间用el表达式直接赋值,再次点开时会出现

解决方案:用隐藏域接收参数,等待时间选择器加载完之后,在JS中再赋值,使用下面代码中的update方法,不能直接复制要转化成Date

var hdnStartDate = $('#hdnStartDate').val();
var hdnEndDate = $('#hdnEndDate').val();
if($.trim(hdnStartDate) != ''){
            $('#inputStartDate').val(hdnStartDate);
            $('#inputStartDate').datetimepicker('update', new Date(Date.parse(hdnStartDate)));
    }
    if($.trim(hdnEndDate) != ''){
            $('#inputEndDate').val(hdnEndDate);
            $('#inputEndDate').datetimepicker('update', new Date(Date.parse(hdnEndDate)));
    }
  1. input框里面输入,(解决办法:把input设置成readonly


转载于:https://my.oschina.net/u/2354306/blog/619245

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值