jquery - datepicker问题 - 切换日期格式丢失数据

时间:2012-05-13 22:55:07

标签: jquery datepicker date-format

我正在使用带有复选框的datepicker。如果选中,则日期应以dd.mm.yy格式显示,如果未选中,则应以mm.yy格式显示。再次检查后,它应再次以dd.mm.yy格式显示日期。

正如您在代码中看到的,它几乎正常工作:

HTML:

<div class="pola_tresc">
   <input type="text" name="date_from" id="date_from">
</div>
<label class="label_check">
    <input name="mm_yy" id="" value="" type="checkbox"/>
</label>

使用Javascript:

    $( "#date_from" ).datepicker();
$('.label_check').click(function(e){
    e.preventDefault();
    if ( $('label > input').prop('checked') == true )
    {
        $('label > input').prop('checked', false);
        $('label').removeClass('c_on');
        $( "#date_from" ).datepicker( "option", "dateFormat", "dd.mm.yy" );

    } else  {
        $('label > input').prop('checked', true);
        $('label').addClass('c_on');
        $( "#date_from" ).datepicker( "option", "dateFormat", "mm.yy" );

    }

}); 

上面你可以看到的是一个掩盖普通复选框以使它们看起来更好的功能。它还会根据文档中的建议更改datepicker的日期格式。 我从dd.mm.yy格式的日期开始。然后我点击复选框。它将我的日期更改为mm.yy格式。再次点击后我得到空场。我想datepicker无法将mm.yy日期格式解释为dd.mm.yy - 它不记得对象中的整个日期,它只是从输入字段中选择mm.yy日期,并尝试用其中一个日期格式算法识别它。它导致空字符串。 问题: 如何在不丢失数据的情况下轻松更改mm.yy和dd.mm.yy日期?

编辑:

我正在考虑将dd.mm.yy日期存储在隐藏的输入字段中,并在我单击复选框时随时检索它。它应该工作,但它的诀窍 - 我正在寻找更多的datepicker用法。仍然为任何其他想法开放。

1 个答案:

答案 0 :(得分:0)

您可以使用jQuery.data api存储完整日期,而不是使用隐藏字段。