jQuery Datepicker – 自动为所有日期选择器定义altField

我的所有日​​期选择器都有一个自动生成的隐藏字段,其ID与datepicker输入相同,但前缀为下划线。

然后任何具有类datepicker字段都会被制作成日期选择器。

 $('.datepicker input').datepicker({ altFormat: 'yy-mm-dd', changeMonth: true, constrainInput: true, dateFormat: 'dd/mm/y', minDate: '+0d', numberOfMonths: 2 }); 

但是我怎样才能自动为它设置altField选项呢?

这不起作用。 我也尝试在原始选项中进行分配,但这也不起作用。

 $('.datepicker input').each(function() { var altField = '_' + $(this).prop('id'); $(this).datepicker('option', 'altField', altField); }); 

altField选项采用选择器,jQuery对象或元素,而不是id属性。

尝试指定一个id选择器 :

 $(this).datepicker("option", "altField", "#_" + $(this).prop("id")); 

或者,保存对$()的调用和对prop()的调用:

 $(this).datepicker("option", "altField", "#_" + this.id); 

试试这个:

 $('.datepicker input').each(function() { var altField = '#_' + $(this).prop('id'); $(this).datepicker('option', 'altField', altField); }); 

jQuery UI Datapicker 1.9,使用altField,altFormat选项和覆盖内部方法

克隆字段以数据库格式“yy-mm-dd”存储实际值,并使用主字段显示格式化值(此示例中为“dd-mm-yy”):

 $(function() { var _connectDatepicker = $.datepicker._connectDatepicker; $.datepicker._connectDatepicker = function(target, inst) { var $target = $(target); var $altField = $target.clone(false).appendTo($target.parent()).hide(); inst.settings.altField = $altField; inst.settings.dateFormat = inst.settings.altFormat = "yy-mm-dd"; _connectDatepicker.call(this, target, inst); $target.removeAttr("name").datepicker( "option", "dateFormat", "dd-mm-yy"); }; });