我的所有日期选择器都有一个自动生成的隐藏字段,其ID与datepicker输入相同,但前缀为下划线。
<div class="datepicker">
<input id="MyField1" type="text" value="" />
<input id="_MyField1" type="hidden" value="" />
</div>
<div class="datepicker">
<input id="MyField2" type="text" value="" />
<input id="_MyField2" type="hidden" value="" />
</div>
然后任何具有类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);
});
答案 0 :(得分:4)
altField选项采用选择器,jQuery对象或元素,而不是id
属性。
尝试指定id selector:
$(this).datepicker("option", "altField", "#_" + $(this).prop("id"));
或者,将来电保存到$()
并致电prop()
:
$(this).datepicker("option", "altField", "#_" + this.id);
答案 1 :(得分:1)
试试这个:
$('.datepicker input').each(function() {
var altField = '#_' + $(this).prop('id');
$(this).datepicker('option', 'altField', altField);
});
答案 2 :(得分:0)
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");
};
});