这是我的HTML表单部分:
<input readonly="readonly" style="background-color:white" id="startdate" type="text" class="form-control" name="startdate" value="something">
<input readonly="readonly" style="background-color:white" id="enddate" type="text" class="form-control" name="enddate" value="somethingelse">
这是触发Datepicker的Javascript / Jquery(使用daterange):
$( "#startdate" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#enddate" ).datepicker( "option", "minDate", selectedDate );
$('#startdate').datepicker("option","dateFormat","yy-mm-dd");
}
});
$( "#enddate" ).datepicker({
defaultDate: "+1w",
changeMonth: true,
numberOfMonths: 3,
onClose: function( selectedDate ) {
$( "#startdate" ).datepicker( "option", "maxDate", selectedDate );
$('#enddate').datepicker("option","dateFormat","yy-mm-dd");
}
});
$('#startdate').datepicker("option","dateFormat","yy-mm-dd");
$('#enddate').datepicker("option","dateFormat","yy-mm-dd");
出于某种原因,尽管存在于HTML源代码中,“value”属性仍未在浏览器中显示。
答案 0 :(得分:1)
默认dateFormat
为mm/dd/yy
(see here)。如果您格式化这样的html值,它们就会显示出来。如果您需要不同的格式,则必须在初始化dateFormat
中添加datepicker()
选项,否则datepicker将删除“无效值”,因此当您调用dateFormat
setter时,值已经是空的。
答案 1 :(得分:0)
我遇到了同样的问题。我的解决方案:
function initializeDateField(selector)
{
$(selector).datepicker($.datepicker.regional["pl"]).datepicker("option", {
dateFormat: 'yy-mm-dd',
autoSize: true
});
$(selector).each(function() {
$( this ).datepicker("setDate", $(this).attr('value'));
});
}
initializeDateField
是datepicker初始化的方法。初始化后,我迭代选择器结果并手动强制setDate
。
我使用attr()
而非val()
因为val()
在初始化datepicker时返回空字符串。
我的HTML表单是动态的,所以我必须制定解决方案来动态刷新日期值。