日期选取器问题 - 切换日期格式丢失数据



我正在使用带有复选框的日期选择器。如果选中日期,则应以 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" );
    }
}); 

您可以在上面看到的是一个屏蔽普通复选框以使它们看起来更好的功能。它还会更改日期选取器的日期格式,如文档中的建议。我从日期的 dd.mm.yy 格式开始。然后我点击复选框。它将我的日期按预期更改为 mm.yy 格式。再次单击后,我得到空字段。我想日期选择器无法将 mm.yy 日期格式解释为 dd.mm.yy - 它不记得对象中的整个日期,它只是从输入字段中选择 mm.yy 日期,并尝试使用它的日期格式算法之一识别它。它的结果是空字符串。问题:如何在 mm.yy 和 dd.mm.yy 日期之间轻松切换而不会丢失数据?

编辑:

我正在考虑将dd.mm.yy日期存储在隐藏的输入字段中,并在单击复选框时检索它。它应该有效,但这是技巧 - 我正在寻找日期选择器的更多用法。仍然对任何其他想法持开放态度。

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

最新更新