2012-03-29 188 views
34

我想在我的jquery ui datepicker中设置一个初始值。我尝试了几种不同的方式,但似乎没有显示日期,它是空的。用jquery在datepicker中设置初始值?

var idag = new Date(); 
$("#txtFrom").datepicker("setDate", idag - 2); 
$("#txtTom").datepicker("setDate", idag); 
$("#txtFrom").datepicker("refresh"); 
$("#txtTom").datepicker("refresh"); 
+1

我不知道,如果你需要调用'refresh'方法。你能提供一个更广泛的范围,你如何使用它?你什么时候试图设定日期? – Richard 2012-03-29 08:47:51

+1

@安德里亚斯:我想我完全按照它,但没有结果。这就是我问的原因。 – kaze 2012-03-29 08:55:55

+1

@Richard:刷新只是一种尝试将文本排除的方式。 – kaze 2012-03-29 08:57:49

回答

61

这个简单的example作品对我来说...

HTML

<input type="text" id="datepicker"> 

的JavaScript

var $datepicker = $('#datepicker'); 
$datepicker.datepicker(); 
$datepicker.datepicker('setDate', new Date()); 

我能够通过简单的寻找到createthis和阅读的setDate的解释:

.datepicker( “的setDate”,日期)
设置的日期选择当前日期。新日期可能是日期 对象或当前日期格式的字符串(例如'01/26/2009'), 从今天开始的天数(例如+7)或者一串值和期间 (' '''''''''''''''''','''''','''''',或者为空以清除所选日期。

+4

你是对的。我的错误是,我认为我可以在选择器的初始化的同时做到这一点,即只有$(“#txtTom”)。datepicker(“setDate”,idag)就足够了,不需要(“ #txtTom“)。datepicker()第一个。 – kaze 2012-03-29 09:10:09

+0

其实你可以在datepicker的焦点事件上做到这一点,这是我做的: $(document).on('focus',“.datepicker”,function(){ $(this).datepicker() ; $(this).datepicker('setDate',new Date($(this).val())); //设定值 }); 我这样做是因为我动态添加datepickers,所以它会修改任何输入与datepicker类从实际日期选择器的那一刻起,你选择它 – WtFudgE 2016-04-18 08:09:18

+0

这将触发'changeDate'事件,可能不是你想要的每一个页面加载。 – stealthysnacks 2017-06-23 00:04:36

4

jQuery

设置为在第一开口突出,如果该字段为空的日期。通过Date对象指定实际日期,或者在当前的dateFormat中指定一个实际的日期,或者指定从今天开始的天数(例如+7)或者一串值和期间('y'多年,'m'多个月, 'w'表示数周,'d'表示数天,例如'+ 1m + 7d'),或者对于今天为空。

代码示例

初始化与指定的defaultDate选项一个datepicker。

$(".selector").datepicker({ defaultDate: +7 }); 

在init之后获取或设置defaultDate选项。

//getter 
var defaultDate = $(".selector").datepicker("option", "defaultDate"); 
//setter 
$(".selector").datepicker("option", "defaultDate", +7); 

的日期选择器是intialized后,你也应该能够设定日期:

$(/*selector*/).datepicker("setDate" , date) 
1

使用setDate

.datepicker("setDate" , date) 

设置的日期选择当前日期。新日期可以是日期对象或当前日期格式的字符串(例如'01/26/2009'),距离今天的天数(例如+7)或者一串值和句点('y'表示年,'m'为几个月,'w'为几周,'d'为天,例如'+ 1m + 7d'),或者为null以清除选定的日期。

+0

- ,nope ...'如果该字段为空,请在首次打开时将日期设置为高亮显示。' @ http://jqueryui.com/demos/datepicker/#option-defaultDate - example http://jsfiddle.net/dittodhole/epHNZ/2/ – 2012-03-29 09:00:38

+0

我更新了我的answer.and upvoted for you – Pranav 2012-03-29 09:05:22

+0

@ jb10210它不是初始日期!这只是“首次亮相时的日期”......只要按照我的例子! – 2012-03-29 09:17:38

9

您可以在HTML中设置的值,然后初始化日期选择器启动/凸显的实际日期

<input name="datefrom" type="text" class="datepicker" value="20-1-2011"> 
<input name="dateto" type="text" class="datepicker" value="01-01-2012"> 
<input name="dateto2" type="text" class="datepicker" > 


$(".datepicker").each(function() {  
    $(this).datepicker('setDate', $(this).val()); 
}); 

以上,甚至与丹麦的日期格式

http://jsfiddle.net/DDsBP/2/

+0

$(this).val()给了我空串... – 2014-02-09 14:16:58

+0

$(“”。datepicker“”)。each(function(){ var dateValue = $ (这个)。ATTR( “” 值 “”); \t如果(!DATEVALUE = “”, “”){\t \t \t \t \t $(本).datepicker( “” 的setDate “”,DATEVALUE); \t} }); – 2015-02-04 13:52:56

1

我的作品我不完全确定我是否理解了你的问题,但似乎你正在尝试为输入类型Date设置值。

如果你想为输入型日期”设置的值,那么它必须被格式化为“YYYY-MM-DD”(注:资本MM为月,小写毫米分钟)。否则,它将清除该值并将日期选择器留空。

假设你有一个名为“DateChanger”按钮,你要设置你的日期选择为“2012年12月22日”当你点击它。

<script> 
    $(document).ready(function() { 
     $('#DateChanger').click(function() { 
      $('#dtFrom').val("2012-12-22"); 
     }); 
    }); 
</script> 
<input type="date" id="dtFrom" name="dtFrom" /> 
<button id="DateChanger">Click</button> 

请记住包含JQuery引用。

+0

用户要求提供jQuery'datepicker'插件。 – pietrop 2017-12-10 13:33:17

2

使用此代码它会帮助你。

<script> 
InitializeDate(); 
</script> 




<input type="text" id="txtFromDate" class="datepicker calendar-icon" placeholder="From Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;"> 
     <input type="text" id="txtToDate" class="datepicker calendar-icon" placeholder="To Date" style="width: 100px; margin-right: 10px; padding: 0px 0px 0px 7px;"> 


function InitializeDate() { 
    var date = new Date(); 
    var dd = date.getDate();    
    var mm = date.getMonth() + 1; 
    var yyyy = date.getFullYear(); 

    var ToDate = mm + '/' + dd + '/' + yyyy; 
    var FromDate = mm + '/01/' + yyyy; 
    $('#txtToDate').datepicker('setDate', ToDate); 
    $('#txtFromDate').datepicker('setDate', FromDate); 
} 
+0

请在发布代码片段时添加一些直觉。 – vefthym 2014-07-17 11:05:58

-1

使用它的初始化代码后能得到当前日期(日期选择器格式):

$(".ui-datepicker-today").trigger("click");