更改单独的表单字段时,JQuery datepicker默认为1970-01-01

时间:2017-06-27 15:57:18

标签: javascript jquery date datepicker

我一直在试图解决这个问题。

我有一个使用datepicker的日期字段和一个7天或14天的持续时间字段。日期选择器工作正常,即使我将选定的值默认为日期选择器,如果您将日期下拉菜单从7更改为14,您将看到日期默认为1970-01-01。

<?php
$datetoday = date('Y-m-d');
$dateselected = date('Y-m-d');
$dateformatted = date('d/m/Y');
$daysselected = '7';

if(isset($_POST['date']) && isset($_POST['days'])){
  $dateselected=date('Y-m-d',strtotime($_POST['date']));
  $dateformatted=date('d/m/Y',strtotime($_POST['date']));
  $daysselected = $_POST['days'];
}
?>
<head>
<link rel="stylesheet" href="//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">
<link rel="stylesheet" href="/resources/demos/style.css">
<script src="https://code.jquery.com/jquery-1.12.4.js"></script>
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
</head>
<body>

<script>
  $( function() {
    $( "#datepicker" ).datepicker();
  } );
</script>

<form name="CheckAvailability" method="POST">
Select Date: <input onchange='this.form.submit()' class="datepicker" type="text" id="datepicker" name="date" value="<?php echo $dateformatted ?>">
Days to Show: <select onchange='this.form.submit()' type="hidden" name="days">
<option value="7" id="days" name="days">7 days</option><option value="14">14 days</option></select>
<button onchange='this.form.submit()' type="submit" value="<?php echo date('Y-m-d', strtotime($datetoday)); ?>" id="date" name="date">Today</button>
<noscript><input type="submit" value="Submit"></noscript>
</form>
</body>

<?php

echo 'Date selected: ' . $dateselected . ' for ' . $daysselected . ' days' . '<br /><br />';

?>
</body>

如何让datepicker记住它已经拥有的日期?

感谢任何帮助或指导。

亲切的问候,

罗布

1 个答案:

答案 0 :(得分:1)

也许我错过了您的要求,但您可以在提交之前选择当前日期:

var myDate = $("#datepicker").datepicker('getDate');

并将其与表单一起传递,然后在初始化datepicker之后:

$("#datepicker").datepicker('setDate', myDate);

重新加载提交后再次加载页面时所选的日期。