2012-12-14 27 views
5

मेरे सभी डेटपिकर्स में स्वचालित रूप से जेनरेट किया गया छुपा फ़ील्ड होता है जिसमें डेटपिकर इनपुट के समान आईडी होती है, लेकिन अंडरस्कोर प्रीपेड के साथ होती है।jQuery डेटपिकर - स्वचालित रूप से सभी डेटपिकर्स के लिए 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 में बनाया जाता है।

$('.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');' नोट करें कि आईडी एक विशेषता है, संपत्ति नहीं। – Pere

उत्तर

4

altField विकल्प के लिए एक चयनकर्ता, एक jQuery वस्तु या एक तत्व है, न कि id विशेषता लेता है।

को निर्दिष्ट एक id selector का प्रयास करें:

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

या वैकल्पिक रूप से, $() के लिए एक कॉल और prop() के लिए एक कॉल की बचत:

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

धन्यवाद, मुझे नहीं पता कि मुझे यह कैसे याद आया। – BadHorsie

1

इस प्रयास करें 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

jQuery यूआई Datapicker:

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

REPLACE var $ altField = $ target.clone (false) के ऊपर नमूना में .appendTo ($ target.parent())। Hide(); से var $ altField = $ ("#_" + $ target.prop ("id")); – AndreyP

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^