2010-09-28 29 views
5

Bir sayfada birden datepickers var ... hepsijQuery datepicker - Dinamik altfield sorunu

bu mümkün gibi bir şey mi ... I altfield parçası dışında iyi çalışıyor gibi görünüyor ??

$(document).ready(function(){ 

    $(".datepicker").datepicker({ 
     beforeShowDay: function(date){ return [(date.getDay() == 1 || date.getDay() == 4), ""] }, 
     showOn: "button", 
     buttonText: "Book now...", 
     showWeek: true, 
     firstDay: 1, 
     onSelect: function(date) { 
      $(this).parent().find('.selecteddate').prepend("Date: " + $(this).parent().find('.datepicker').val() + " - <a href='javascript:;' class='cleardate'>clear date</a>"); 
      $(this).parent().find('button').hide(); 
     }, 
     dateFormat: "DD, d MM, yy", 

     altField: $(this).closest('div').find('.datepickeralt'), 

     altFormat: "dd/mm/yy", 
     navigationAsDateFormat: true, 
     minDate: 0, 
    }); 

    $(".cleardate").live('click',function(){ 
     $(this).closest('div').find('.datepicker').datepicker("setDate", null); 
     $(this).closest('div').find('.datepickeralt').val(""); 
     $(this).closest('div').find('button').show(); 
     $(this).parent().html(""); 
    }); 

}); 

cevap

9

Evet aynen bunu yapabilir, sadece böyle bir .each() döngü ile tarih toplayıcı örneğini gerekir:

$('.datepicker').each(function() { 
    $(this).datepicker({ 
    altField: $(this).closest('div').find('.datepickeralt') 
    }); 
}); 

.each()this içine Bu şekilde her ne istediğinizi belirtir Bireysel tarih seçicisi, daha sonra değerini alt alanından bulur. You can give it a try here.

+3

@Tom - İşte kodunuzla uygulanan demo: http://jsfiddle.net/nick_craver/BhzE5/1/ –

+1

@NickCraver Genius! –