使用datepicker时,HTML输入标记的“value”属性不显示

时间:2014-01-19 09:01:01

标签: javascript jquery jquery-ui datepicker

这是我的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”属性仍未在浏览器中显示。

2 个答案:

答案 0 :(得分:1)

默认dateFormatmm/dd/yysee 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表单是动态的,所以我必须制定解决方案来动态刷新日期值。

希望对你有帮助。