Not finding defaultDate in jQuery UI datepicker
I have a form text field that pulls a date from a database (in the format yyyy-mm-dd).
<input class="" type="text" name="closingDate" id="closingDate" value="<?php echo $closingdate;?>" />@ Midday
I then have a jQuery datepicker that will grab its 'defaultDate' value as the value attribute of the input shown above.
$(document).ready(function(){
$("开发者_如何转开发#datepicker").datepicker({defaultDate: 'input#closingDate.attr('value')' , altField: 'input#closingDate' , altFormat: 'yy-mm-dd'});
});
(plz note: yy-mm-dd is correct to format as yyyy-mm-dd, also $closingdate correctly echo's out as yyyy-mm-dd as i have checked it elsewhere in the page).
However the datepicker will not grab the date from the input field, it simply defaults to its 'today' value.
Sorry for being so late, but for completeness here is what worked for me.
Basicly you need to use the same dateFormat as the datepicker or pass a Date Object.
$(document).ready(function(){
$("#datepicker").datepicker({
defaultDate: new Date($('input#closingDate').attr('value')),
altField: 'input#closingDate',
altFormat: 'yy-mm-dd'
});
});
The problem with this is the input value is changed to '' so its no good for an edit form.
I personally use the setDate method with a Date object, this way I can use '2001-01-01' in php but display a "nicer" looking date in the input.
$(document).ready(function(){
$("#datepicker").datepicker({
altField: 'input#closingDate',
altFormat: 'yy-mm-dd',
dateFormat:'DD, d MM, yy'
});
$("#datepicker").datepicker("setDate", new Date($("input#closingDate").attr("value"));
});
You shouldn't be putting your default date inside a literal string, the .attr()
function returns a string:
$(document).ready(function(){
$("#datepicker").datepicker({
defaultDate: $('input#closingDate').attr('value'),
altField: $('input#closingDate'),
altFormat: 'yy-mm-dd'
});
});
i know this is a bit late but i had the exact same problem when trying to set the default date in the JQuery UI DatePicker.
It kept taking my asp.net DateTime and adding random years to it or something.
My solution :
var myDate= new Date('<%=myObject.myDate.ToLongDateString() %>');
$("#mytextbox").datepicker({ defaultDate: myDate });
精彩评论