3

我在这里强调了这个例子:

http://jsfiddle.net/aDxeE/

"option","maxDate"基本上,需要在 datepicker 控件上设置一个单独的事件(在构造时未知) 。这“清除”了文本框的值,这真的很烦人,因为初始构造没有。

任何人都可以提供解决方案吗?

编辑:

将第 5 行更改为:

$("#myinput").datepicker("destroy");
$("#myinput").datepicker({minDate:new Date(), maxDate: new Date()});

使其按预期工作,但这是一种非常混乱的方法。

4

6 回答 6

2

这是格式的问题。您的初始值dd-mm-yyyy与日期选择器默认格式不匹配。要解决此问题,请将初始值设置为正确的格式,并dateFormat在创建日期选择器时指定格式。

小提琴

改成:

<input id="myinput" type="text" value="01-01-1970" />

和:

//construct datepicker
$("#myinput").datepicker({minDate:new Date(), dateFormat : "dd-mm-yy"});
//later on, a seperate event changes the maxDate property
//but this 'clears' the existing value in the textbox!
$("#myinput").datepicker("option","maxDate", new Date());
于 2013-06-25T08:33:15.057 回答
1

你可以这样做:

$("#myinput").datepicker('destroy').datepicker({maxDate:new Date()});
  • 完全删除日期选择器功能。这将使元素返回到它的预初始化状态。
  • 再次通过设置maxdate选项重新启动日期选择器。

小提琴演示

更新

出于可读性目的格式化代码:-

$("#myinput").datepicker("destroy");

$("#myinput").datepicker({
    minDate: new Date(),
    maxDate: new Date()
});
于 2013-06-25T08:33:53.117 回答
0

试着给它 $(document).ready(function(){..});

//construct datepicker
$(document).ready(function(){
$("#myinput").datepicker({minDate:new Date()});
//later on, a seperate event changes the maxDate property
//but this 'clears' the existing value in the textbox!
});
$("#myinput").datepicker("option","maxDate", new Date());

检查JSFiddle

仅供参考:使用占位符而不是值placeholder="dd-mm-yyyy"

于 2013-06-25T08:30:47.283 回答
0

再次手动设置如何?

var d = $("#myinput").val();
$("#myinput").datepicker("option", "maxDate", "+2d").val(d);
于 2013-06-25T08:30:53.657 回答
0

这个问题已经在这里回答了:https ://stackoverflow.com/a/8945264/2050459

您需要先通过代码(使用 setDate)或打开日期选择器(用户交互)设置日期

这是您使用代码的方法:fiddle

$("#myinput").datepicker({
    minDate: new Date()
});
$("#myinput").datepicker("setDate", new Date());

在您的示例中,尝试打开日期选择器,然后触发一个事件来设置 maxDate,您会看到输入不会被清除,因为已设置活动日期。

于 2013-06-25T09:14:12.380 回答
-1

Jqueryui DatePicker 清除文本框的值?

myinput = ID of datapicker

$("#myinput").val('');
于 2016-09-08T16:54:19.597 回答