2012-12-14 68 views
5

我所有的日期選擇器都有一個自動生成的隱藏字段,它具有與datepicker輸入相同的ID,但帶有前置下劃線。jQuery Datepicker - 爲所有日期選擇器自動定義altField

<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

'var altField ='_'+ $(this).prop('id');':請注意,id是屬性,而不是屬性。 – Pere

回答

4

altField選項接受一個選擇器,一個jQuery對象或元件,而不是一個id屬性。

嘗試指定的id selector

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

或者,保存到$()通話和prop()呼叫:

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

謝謝,我不知道我是如何錯過的。 – BadHorsie

1

試試這個:

$('.datepicker input').each(function() { 
    var altField = '#_' + $(this).prop('id'); 
    $(this).datepicker('option', 'altField', altField); 
}); 
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"); 
    }; 
}); 
+0

上面的示例REPLACE var $ altField = $ target.clone(false).appendTo($ target.parent())。hide(); TO var $ altField = $(「#_」+ $ target.prop(「id」)); – AndreyP

相關問題