1

jQuerydatepicker有一个名为 的函数altFormat,它允许您向用户显示日期格式,同时使用另一种格式作为值。

如何在将 1970-01-01 作为值的同时向用户显示 01/01/1970?

例子

$(document).ready(function(){
    $('.pickadate').datepicker({
       format: "yyyy-mm-dd",
       language: "pt-BR",
       daysOfWeekDisabled: [0,6],
       autoclose: false,
       todayHighlight: true
    }).on('changeDate', function(e){
        $(this).val(e.format('dd/mm/yyyy')); //My pifious tries
    });
    $('.pickadate').on('hide', function(e) {
        $(this).val(e.format('dd/mm/yyyy'));
    });
});
4

2 回答 2

0

jQuery ui datepicker 支持此行为:您将需要两个输入:

  • 一个存储值(隐藏)
  • 其他向用户显示价值

http://jqueryui.com/datepicker/#alt-field

于 2017-08-11T20:45:23.983 回答
0

好吧,所以我让自己这样运行:

CSS:

.pickadate {
    color: #FFF;
}
.show_date_to_user {
    display:none;
    position: relative;
    top: -25px; /* You might have to adjust this */
    left: 10px;
    height:0;
    float:left;
}

jQuery:

$(document).ready(function(){
    $('.pickadate').datepicker({
       format: "yyyy-mm-dd",
    })
    $('.pickadate').after('<div class="show_date_to_user"></div>');
    $('.pickadate').on('changeDate', function() {
        var data = $(this).val();
        var data = data.split('-').reverse().join('-');
        var data = data.replace(/-/g,"/");
        $(this).nextAll('.show_date_to_user').css("display","inline-block").html(data);
    });
});

这是做什么的:

  1. 使 datepicker 的日期不可见 (#FFF)
  2. 创建一个新的 div 来向用户显示日期,这样我们就可以在不弄乱输入值的情况下弄乱它
  3. 当 datepicker 更改值时,它会搜索最近的“show_date_to_user” div 并用日期填充它
  4. 然后它反转顺序(01-01-1970 而不是 1970-01-01)
  5. 然后它只是用“/”替换“-”
  6. 最终结果显示 01/01/1970,没有弄乱输入值
于 2015-07-24T19:50:41.433 回答