2011-10-10 10 views
20

Sto provando a disabilitare tutte le date in un datepicker e abilitare solo le date che sono in una matrice. Questo è il codice che ho finora http://jsfiddle.net/peter/yXMKC/ il problema è solo il 14 maggio si presenta come abilitato. Gli altri sono tutti disabili. Qualche idea?jQuery UI Datepicker abilita solo giorni specifici nell'array

var availableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

function available(date) { 
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
    if ($.inArray(dmy, availableDates) == 1) { 
    return [true, "","Available"]; 
    } else { 
    return [false,"","unAvailable"]; 
    } 
} 

$('#date').datepicker({ beforeShowDay: available }); 
+0

'$ .inArray' tornerà alla posizione del valore nella matrice (parte da 0), se il valore non è nella matrice, verrà restituito' -1' – Xieranmaya

risposta

43

$ .inArray (DMY, availableDates) restituisce l'indice dell'elemento, in modo che quando si confrontano con 1 solo 14-5-2011 corrisponderà. Verifica per non uguale a -1. Dovrebbe funzionare.

Fiddle - http://jsfiddle.net/yXMKC/4/

var availableDates = ["9-5-2011","14-5-2011","15-5-2011"]; 

function available(date) { 
    dmy = date.getDate() + "-" + (date.getMonth()+1) + "-" + date.getFullYear(); 
    console.log(dmy+' : '+($.inArray(dmy, availableDates))); 
    if ($.inArray(dmy, availableDates) != -1) { 
    return [true, "","Available"]; 
    } else { 
    return [false,"","unAvailable"]; 
    } 
} 
+1

Voglio chiederti se ho aggiunto un'altra data per dire "22-10-2014" e altre date non funzioneranno. Mostrerà solo la data della falena selezionata come gestirla. –

+0

Come ottengo questo formato MM/GG/AAAA? – Si8

Problemi correlati