从备用字段

时间:2016-03-04 15:11:40

标签: javascript jquery jquery-ui datepicker jquery-ui-datepicker

我总是想知道你是怎么做到的。我将datepicker的替代字段的值保存到数据库中(以MySQL日期格式)。如果我从db中获取,我可以使用它填充altField。但实际的datepicker字段仍为空。我必须从db中格式化它并填充该字段。但是,日期选择器不应该这样做吗?有可能吗?

//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的格式与显示的格式不同)。此外,datepicker中的选定日期是当前日期,而不是来自db的日期。

https://jsfiddle.net/mkxcqub6/1/ - 这个小提琴显示了我现在正在做的事情。我从db获得两种格式的日期。一个是MySQL可以处理它并以用户定义的格式。这样,datepicker也将日期显示为选中状态。

1 个答案:

答案 0 :(得分:0)

我建议您通过# Do the regex check against the URI here, if match, set the "require_auth" var SetEnvIf Request_URI ^/product-category/ require_auth=true # Auth stuff AuthUserFile /home1/thetimh6/public_html/htpasswd AuthName "Password Protected" AuthType Basic # Setup a deny/allow Order Deny,Allow # Deny from everyone Deny from all # except if either of these are satisfied Satisfy any # 1. a valid authenticated user Require valid-user # or 2. the "require_auth" var is NOT set Allow from env=!require_auth setDate这样做。请参阅工作示例:https://jsfiddle.net/Twisty/ht87Lvqv/

<强> HTML

defaultDate

<强> JQuery的

<input type="hidden" name="expires" value="2012-06-01">
<label for="startDate">Date :</label>
<input class="date-picker" />

请记住,$(function() { var $inp = $("input[name='expires']").val(); var YY = parseInt($inp.substring(0, 4)); var MM = parseInt($inp.substring(5, 7)) - 1; var DD = parseInt($inp.substring(9,11)); var myDate = $inp != "" ? new Date(YY, MM, DD) : new Date(); $('.date-picker').datepicker({ dateFormat: 'yy-mm-dd', defaultDate: myDate }).datepicker("setDate", myDate); }); 使用0 - 11个月的数组。

修改

更新后,您仍然不清楚如何使用这些字段,但我希望这有助于使备用字​​段更清晰:

https://jsfiddle.net/Twisty/ht87Lvqv/1/

<强> HTML

Date

<强> JQuery的

Hidden: <input type="text" class="hidden" name="expires" value="2016-01-01">
Normal: <input type="text" class="datepicker" id="current">
Formatted: <input type="text" class="datepicker" id="formatted" value="01.01.2016">

现在选择日期时,它会将交替格式化的日期放入$(function() { var $inp = $("input[name='expires']").val(); var YY = parseInt($inp.substring(0, 4)); var MM = parseInt($inp.substring(5, 7)) - 1; var DD = parseInt($inp.substring(9,11)); var myDate = $inp != "" ? new Date(YY, MM, DD) : new Date(); $("#current").datepicker({ dateFormat: 'yy-mm-dd', defaultDate: myDate, altField : $("#formatted"), altFormat : "dd.mm.yy" }).datepicker("setDate", myDate); }); 字段。我强烈建议您在字段中使用ID。