4

我有一个 INPUT 标记,其 value 属性设置为“2012 年 5 月 15 日”,我已经用它初始化了一个 JQuery UI Datepicker,如下所示:

<input type="text" name="schedule" id="schedule"
      value="15-May-2012">

<script type="text/javascript">
  $(function() {
    $( "#schedule" ).datepicker();
    $( "#schedule" ).datepicker( "option", "dateFormat", "d-M-yy" );
  });
</script>

出于某种原因,一旦 Datepicker 初始化,INPUT 标记的值就会被清除。请注意,INPUT 字段中的值与为 Datepicker 设置的格式匹配。

为什么清除值?

这是一个活生生的例子:http ://agnelkurian.com/lab/datepicker_example.html

4

3 回答 3

12

当您绑定日期选择器时:

$('#schedule').datepicker();

它将使用默认值dateFormat,即"mm/dd/yy";您的"15-May-2012"格式与该格式不匹配,因此日期选择器在无法使用"mm/dd/yy". 然后你改变格式:

$("#schedule").datepicker("option", "dateFormat", "d-M-yy");

但是value已经丢失了。

您应该在绑定日期选择器时设置格式:

$("#schedule").datepicker({
    dateFormat: 'd-M-yy'
});

演示: http: //jsfiddle.net/ambiguous/mHyn7/ ​</p>

于 2012-05-06T06:16:09.397 回答
2

实际有效的简单解决方案:

var tmp = $('#schedule').val();
$("#schedule").datepicker("option", "dateFormat", "d-M-yy");
$("#schedule").val(tmp);
于 2015-06-30T09:29:23.747 回答
-1
    $( "#schedule" ).datepicker();
$( "#schedule" ).datepicker( "option", "dateFormat", 'd-M-yy' );
$( "#schedule" ).val("15-May-2012");
于 2013-12-04T20:45:45.043 回答