【发布时间】:2016-03-04 15:11:40
【问题描述】:
我一直想知道你是怎么做到的。我将 datepicker 的替代字段的值保存到数据库(以 MySQL 日期格式)。如果我从数据库中得到它,我可以用它填充 altField。但是实际的 datepicker 字段仍然是空的。我必须从数据库中对其进行格式化并填充该字段。但是日期选择器不应该这样做吗?有可能吗?
//html
// {$dbDate.expires} = '2016-01-01'
// {$dbDate.expires_formatted} = '01.01.2016'
<input type="hidden" name="expires" value="{$dbDate.expires}">
<input type="text" class="datepicker"> //should display the value "01.01.2016"
<input type="text" class="datepicker" value="{$dbDate.expires_formatted}"> //this is what I currently do instead
//js
.datepicker({
altField : $(document).find('input[name="expires"]'),
altFormat : "yy-mm-dd"
}, $.datepicker.regional['someRegional']);
https://jsfiddle.net/mkxcqub6/ - 这个小提琴展示了它应该如何工作。除了这里,您会看到问题是日期最初的格式不正确(因为来自 db 的格式与显示的格式不同)。日期选择器中选定的日期也是当前日期,而不是来自数据库的日期。
https://jsfiddle.net/mkxcqub6/1/ - 这个小提琴展示了我现在正在做的事情。我从数据库中以两种格式获取日期。 MySQL 可以处理它并采用用户定义的格式。这样,日期选择器也会显示选定的日期。
【问题讨论】:
-
我认为您的意思是将
'input[name="expires"]'中的值读入setDate或defaultDate,这样当用户选择一个日期时,它就会从到期日期开始。还是我误解了目标? -
不完全是。如果您在日历中选择一个日期,该日期将以您在输入字段中选择的格式显示。但是,如果您将替代字段保存到数据库中,则您只有该格式的日期。现在,如果您从数据库中获取日期,您希望以正确的格式(不是保存到数据库的格式)显示输入字段中设置的日期
标签: javascript jquery jquery-ui datepicker jquery-ui-datepicker