我正在使用带有复选框的日期选择器。如果选中,则日期应以 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 格式。再次单击后,我得到空字段。我猜 datepicker 无法将 mm.yy 日期格式解释为 dd.mm.yy - 它不记得对象中的整个日期,它只是从输入字段中选择 mm.yy 日期,并尝试使用它的 dateformat 算法之一来识别它。结果为空字符串。 问题: 如何在不丢失数据的情况下轻松更改 mm.yy 和 dd.mm.yy 日期?
编辑:
我正在考虑将 dd.mm.yy 日期存储在隐藏的输入字段中,并在我单击复选框时随时检索它。它应该工作,但它的技巧 - 我正在寻找更多使用 datepicker。仍然对任何其他想法开放。