2010-09-28 14 views
5

ho più datepickers su una pagina ... tutto sembra funzionare bene, tranne che la parte Altfield ...jquery datepicker - problema Altfield dinamica

è qualcosa di simile possibile ??

$(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(""); 
    }); 

}); 

risposta

9

Sì, è possibile fare esattamente questo, basta istanziare i raccoglitori di data con un ciclo .each(), in questo modo:

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

In questo modo all'interno della .each()this si riferisce a ciò che si vuole, ogni selettore di date individuale, quindi trovare il suo campo alt. You can give it a try here.

+3

@Tom - Ecco la demo implementata con il tuo codice: http://jsfiddle.net/nick_craver/BhzE5/1/ –

+1

@NickCraver Genius! –