2009-12-08 5 views
13

ho questo codice:JQuery UI non datepicker lavorare quando collegato a una classe di

<html> 
<head> 
    <link type="text/css" href="css/blitzer/jquery-ui-1.7.2.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.7.2.custom.min.js"></script> 
    <script type="text/javascript"> 
$(function() { 
    $('.hasDatepicker').datepicker(); 
}); 
</script> 
</head> 
<body> 
<p>date: <input type="text" name="data" class="hasDatepicker" /></p> 
<input type="submit" value="send" /> 
</div> 
</body> 
</html> 

quando clicco sul campo di inserimento, non succede nulla. Il datepicker è inizializzato, però, quando ispeziono il DOM in Firebug, ottengo il id="dp1260260566059" aggiunto al mio elemento <input>.

Dopo aver cambiato il html e js utilizzare id attributo al posto di class, in modo da avere questo nel mio codice:

$(function() { 
    $('#hasDatepicker').datepicker(); 
}); 

e

<p>date: <input type="text" name="data" id="hasDatepicker" /></p> 

Tutto funziona bene.

Can not datepicker dall'interfaccia utente di JQuery funziona con tutti gli elementi di una classe?

risposta

26

Controllare se datepicker funziona se si modifica il nome classe dei campi di input da "hasDatePicker" a qualcos'altro. La ragione è che quando aggiungere il DatePicker al campo di input usando il codice seguente:

$(function() { 
    $('#date').datepicker(); 
}); 

si aggiunge il nome di classe "hasDatePicker" al campo di immissione. (che sta utilizzando)

+0

Wow. Molte grazie. Questo è fastidioso, causare collisioni di nomi in questo modo e non essere in grado di capire cosa c'è che non va :) – kender

+0

@sv_in Grazie! Era un problema molto frustrante. –

+0

@ sv_in il nome della classe "hasDatePicker" mi ha fatto lottare per più di un'ora. La tua risposta ha chiarito il mio problema. quindi +1 – Vinay

2

Non utilizzare hasDatepicker come nome della classe di selezione data. Utilizza un nome diverso, ad esempio date_picker.

JQuery aggiunge la classe hasDatepicker all'elemento che datepicker() viene chiamato. Se l'elemento ha già la classe hasDatepicker, la funzione datepicker() non fa nulla. Quindi, basta usare un nome di classe diverso.

Problemi correlati