[Javascript] Datepicker - il calendario non si apre

arval

Nuovo Utente
21 Nov 2012
22
1
3
Salve a tutti, ho un piccolo problema con datepicker. Non mi si apre il calendario quando il codice è integrato sulla pagina del sito web nel quale deve essere. Se creo una pagina apposita con solo quel codice invece funziona perfettamente. Ho pensato che possa trattarsi di conflitti tra jquery, infatti ne erano richiamati due e ho rimosso la versione più vecchia, ma continua a non funzionare.
Posto il codice in questione..

Questi sono i richiami inseriti nell'head

Codice:
<link href="booking/css/style.css" rel="stylesheet" type="text/css" />
<!--BOOKING -->
    <link type="text/css" href="booking/css/ui-lightness/jquery-ui-1.8.23.custom.css" rel="Stylesheet" />   
    <link rel="stylesheet" type="text/css" href="booking/js/shadowbox/shadowbox.css"/>
    <script type="text/javascript" src="booking/js/jquery-1.8.2.min.js"></script>
    <script type="text/javascript" src="booking/js/jquery-ui-1.8.23.custom.min.js"></script>
    <script type="text/javascript" src="booking/js/shadowbox/shadowbox.js"></script>
    <script type="text/javascript" src="booking/js/booking-it.js"></script>
    <script type="text/javascript">
        Shadowbox.init();
     </script>
    <script type="text/javascript" src="booking/js/jquery.ui.datepicker-it.js"></script>
    <script type="text/javascript">
    $(function( $ ) {
                    $.datepicker.setDefaults({
                            changeMonth: true,
                            changeYear: true,
                            dateFormat: 'dd-mm-yy'
                    });

                    // FORM 1
                    var cal_inizio = "arrivo";        // <--- ID del campo text di arrivo
                    var cal_fine = "partenza";        // <--- ID del campo text di partenza
                    var dates = $( "#"+cal_inizio+", #"+cal_fine ).datepicker({
                    defaultDate: "+1w",
                    changeMonth: true,
                    numberOfMonths: 1,
                    onSelect: function( selectedDate ) {
                                    var option = this.id == cal_inizio ? "minDate" : "maxDate",
                                            instance = $( this ).data( "datepicker" ),
                                            date = $.datepicker.parseDate(
                                                    instance.settings.dateFormat ||
                                                    $.datepicker._defaults.dateFormat,
                                                    selectedDate, instance.settings );
                                    dates.not( this ).datepicker( "option", option, date );
                            }
                    });

                    // FORM 2
                    var cal_inizio = "dal";        // <--- ID del campo text di arrivo
                    var cal_fine = "al";        // <--- ID del campo text di partenza
                    var dates = $( "#"+cal_inizio+", #"+cal_fine ).datepicker({
                    defaultDate: "+1w",
                    changeMonth: true,
                    numberOfMonths: 1,
                    onSelect: function( selectedDate ) {
                                    var option = this.id == cal_inizio ? "minDate" : "maxDate",
                                            instance = $( this ).data( "datepicker" ),
                                            date = $.datepicker.parseDate(
                                                    instance.settings.dateFormat ||
                                                    $.datepicker._defaults.dateFormat,
                                                    selectedDate, instance.settings );
                                    dates.not( this ).datepicker( "option", option, date );
                            }
                    });
    }( jQuery ));
    </script>
 
<!--END BOOKING -->

Questa invece è la parte html
HTML:
<div align="center" style="width: 100%; height:100%; border:0;">
<div class="content">
     <div id="bookingBG"></div>
     <div id="booking">
         <form action="" method="GET" name="booking">
                <div class="formEl">Arrivo:&nbsp;<input name="arrivo" type="text" class="hasDatepicker" id="arrivo" size="12" maxlength="12" autocomplete="off" /></div>
                <div class="formEl">Partenza:&nbsp;<input name="partenza" type="text" class="hasDatepicker" id="partenza" size="12" maxlength="12" autocomplete="off" /></div>
                <div class="formEl">numero persone:&nbsp;
                        <select class="selezione" name="adulti" id="adulti" >
                                <option selected="selected">1</option>
                                <option>2</option>
                                <option>3</option>
                                <option>4</option>
                                <option>5</option>
                                <option>6</option>
                                <option>7</option>
                                <option>8</option>
                        </select>
                </div>
                <div class="formEl lastEl">
                    <a class="formLink" onClick="checkForm('booking')"><img src="booking/images/go.png" alt=""/>DISPONIBILIT&Agrave;</a>
                </div>
        </form>
    </div>
</div>
</div>
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Ciao controlla nella console del browser se ti restituisce qualche errore ( f5 per aggiornare la cache ) eventualmente posta il link alla pagina.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
eh eh è un bel casino : includi un sacco di librerie, sicuramente qualcuna va in conflitto.
prova a spostare lo script al di sotto degli input vediamo se è un problema di caricamento del documento
non mi pare che hai un altro id uguale ma cmq prova anche a cambiarlo.
metti qualche console.log() qua e la nel codice per vedere dove si ferma.
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
eh eh è un bel casino : includi un sacco di librerie, sicuramente qualcuna va in conflitto.
prova a spostare lo script al di sotto degli input vediamo se è un problema di caricamento del documento
non mi pare che hai un altro id uguale ma cmq prova anche a cambiarlo.
metti qualche console.log() qua e la nel codice per vedere dove si ferma.

Intendi spostarlo prima della chiusura dell'head?Già fatto, non è cambiato nulla.
L'id è unico, ne sono certissima.
La questione del console.log() non l'ho capita! :)
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
intendevo spostarlo sotto l'input della data
Codice:
<input id='arrivo'/>
<script>
 $(function( $ ) {
                  console.log("documento");
                   $.datepicker.setDefaults({
                           changeMonth: true,
                           changeYear: true,
                           dateFormat: 'dd-mm-yy'
                   });
console.log("set default");
                   // FORM 1
                   var cal_inizio = "arrivo";        // <--- ID del campo text di arrivo
                   var cal_fine = "partenza";        // <--- ID del campo text di partenza
                   var dates = $( "#"+cal_inizio+", #"+cal_fine ).datepicker({
                   defaultDate: "+1w",
                   changeMonth: true,
                   numberOfMonths: 1,
                   onSelect: function( selectedDate ) {
                                   console.log("onselect");
                                   var option = this.id == cal_inizio ? "minDate" : "maxDate",
i console.log() vanno a scrivere nella console del browser cosi ti puoi rendere conto quando lo script smette di funzionare
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
intendevo spostarlo sotto l'input della data
Codice:
<input id='arrivo'/>
<script>
 $(function( $ ) {
                  console.log("documento");
                   $.datepicker.setDefaults({
                           changeMonth: true,
                           changeYear: true,
                           dateFormat: 'dd-mm-yy'
                   });
console.log("set default");
                   // FORM 1
                   var cal_inizio = "arrivo";        // <--- ID del campo text di arrivo
                   var cal_fine = "partenza";        // <--- ID del campo text di partenza
                   var dates = $( "#"+cal_inizio+", #"+cal_fine ).datepicker({
                   defaultDate: "+1w",
                   changeMonth: true,
                   numberOfMonths: 1,
                   onSelect: function( selectedDate ) {
                                   console.log("onselect");
                                   var option = this.id == cal_inizio ? "minDate" : "maxDate",
i console.log() vanno a scrivere nella console del browser cosi ti puoi rendere conto quando lo script smette di funzionare

Spostando il codice sotto l'input non succede ancora nulla, ahimè..
Perdonami se insisto sul console.log():p al posto di "documento" e "set default" devo scriverci altro?O lascio così com'è?
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
puoi scriverci quello che vuoi o lasciare cosi non ha importanza. L'importante è che guardi in console mentre interagisci con la pagina per vedere se e quando vengono scritti.
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
Ehm, al caricamento della pagina, in console ho questo
immagine.png

Interagendo non succede nulla.
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
mettili anche nella pagina che hai linkato e che funziona
cambia però il contenuto del log in base a dove lo metti per esempio dopo l'onselect del form 1
Codice:
onSelect: function (selectedDate) {
                    console.log("on select form 1")
dopo l'onselect del form 2
Codice:
onSelect: function (selectedDate) {
                    console.log("on select form 2")
e cosi anche per gli altri.
a proposito perchè hai duplicato i datepicker ? vedo solo un form
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
Ho fatto come hai detto tu, continua a darmi lo stesso risultato come da immagine che ti ho postato nello post precedente..
Il datepicker e' duplicato, gia', perche' e' un codice che ho copiato, personalizzando solo cio' che mi interessa (ahime' di script non me ne intendo ancora..) ed era gia' cosi'. Comunque anche nella pagina che funziona e' cosi', quindi non dovrebbe creare problemi..
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
Sostituisci momentaneamente lo script con questo e posta quello che vedi in cosnole
Codice:
<script type="text/javascript">
           
          $(function () {
                $.datepicker.setDefaults({
                    changeMonth: true,
                    changeYear: true,
                    dateFormat: 'dd-mm-yy'
                });
                // FORM 1   
                console.log($("#arrivo, #partenza").datepicker());
                // FORM 2   
                console.log($("#dal, #al").datepicker());
            });
        </script>
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
Ciao criric, scusa se rispondo solo ora!
Questo è quanto mi risulta dalla console, sostituendo lo script come mi hai suggerito. Ci sarebbero da espandere infinite righe, dimmi te quale ti serve leggere. (Grazie mille per l'aiuto e la disponibilità!!)
console.png
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
ho guardato direttamente il link in console ma mi pare tutto corretto, non vedo errori.
nel frattempo che ci penso potresti provare a togliere un plugin alla volta e vedere quando ricomincia afunzionare. Poi si potrebbe fare una ricerca di eventuali conflitti direttamente su quel plugin.
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
Non ci posso credere, ho cancellato man mano tutti gli script, e non ottenendo alcun risultato, in preda alla disperazione, ho iniziato ad eliminare tutto ciò che fosse diverso dalla pagina funzionante, fino a renderle praticamente cloni.........E non funziona ancora!!??Puoi notare a questo link.

Cosa c'è di losco...?:(
 

criric

Super Moderatore
Membro dello Staff
SUPER MOD
MOD
21 Ago 2010
5.607
54
48
TN
il link funziona, man mano che togli gli script devi aggiornare la cache del browser con F5
 

arval

Nuovo Utente
21 Nov 2012
22
1
3
Certo assolutamente ci mancherebbe che abbia fatto così...ci ho perso delle ore!!! :D
Comunque tutto risolto, anche se non mi torna qualcosa. Praticamente la classe dei due input "arrivo" e "partenza" inizialmente non era specificata, e dal momento che non funzionava, avevo provato a identificarla con "hasDatepicker", come vedi dal primo post, perché avevo trovato un esempio nel quale era riportato così. In tutto ciò ieri, provandole tutte, ma proprio tutte, come ultima spiaggia ho provato a scrivere "arrivo" e "partenza" al posto della dicitura "hasDatepicker" e...ha funzionato!!!o_O Contenta di aver risolto in ogni caso, ma mi fa strano perché inizialmente la dicitura hasDatepicker non c'era ma il problema sussisteva già. Comunque, meglio così ;) Grazie infinite per il tempo perso con me!Sei stato disponibilissimo!
 
  • Like
Reactions: criric
Discussioni simili
Autore Titolo Forum Risposte Data
K [Javascript] datepicker Javascript 12
M Upload immagine con javascript problemi con FormData() Javascript 1
L countdown multiplo javascript Javascript 1
S Problemi Javascript + Aruba Javascript 2
M Inviare un file su un server remoto con JavaScript Javascript 0
T a href="javascript:;" Javascript 0
F Creare elementi html con javascript Javascript 4
A pulsante di update campo mysql con javascript Javascript 2
8 Javascript - PDF Form Javascript 0
B javascript per problemi con pdf e Safari Javascript 0
N informazione javascript Programmazione 0
I Eecuzione di javascript in ciclo foreach php. PHP 7
P javascript:document.forms Javascript 7
S Consiglio esercizio Javascript Javascript 2
MarcoGrazia Aggiungere o rimuovere classi in javascript Javascript 1
P Passaggio id php a javascript PHP 6
E lettura da un Database con Javascript jQuery 2
V TRIS in javascript Javascript 1
IClaude Funzione Javascript Javascript 8
Alex_70 Javascript date color Javascript 3
F Convertire JavaScript per la compatibilità nei browser obsoleti Javascript 0
I Passare dei parametri in javascript PHP 0
Shyson Meglio Javascript o HTML? Javascript 4
M Chiamare pagina php da javascript Javascript 8
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
D Javascript per il download dei dati Javascript 0
grgfede Problema javascript con aruba Javascript 1
webmachine [PHP] [JAVASCRIPT] Form strano in HTML PHP PHP 1
W Modificare il Type di un Input box in javascript ovunque si trovi Javascript 0
I javascript come caricare una pagina sopra quella corrente in automatico Javascript 2
L [Javascript] Problema salvataggio dati in db Javascript 1
max1974 [Javascript] Grafico chartjs con dati da J.ajax Javascript 3
G Quiz Javascript Javascript 4
A [Javascript] Scrittura su più campi contemporaneamente Javascript 19
F classic asp popolare combo box javascript Presentati al Forum 1
claudio_lorenzo [Javascript] aiuto su jquery per calcolo altezze dom Javascript 1
F [Javascript] comando innerHTML non funziona Javascript 5
alexice51 proggrammi per scrivere in javascript? Javascript 3
max1974 [Javascript] Accordion aria-exspanded Javascript 0
D [Javascript] salvare immagine canvas - paypal Javascript 0
O [Javascript] Conflitto Jquery: forse... Javascript 0
M [Javascript] Canvas js css Javascript 1
M Programmazione web HTML, CSS e JavaScript Offerte e Richieste di Lavoro e/o Collaborazione 6
G [Javascript] Errore inserimento dati Backend Node.js e workbench Javascript 1
A Creare con Javascript un percorso all'interno di uno spazio Javascript 0
D [Javascript] inserire uno script in un file php Javascript 6
Monital [Javascript] inserire dati estratti dal db in html fisso Javascript 1
K [javascript] Tecnica per rilevare celle contenenti caratteri ricevute in dinamico Javascript 1
F [JavaScript] Ottenere il CSS dopo transform: scale() e transform-origin Javascript 0
S [Javascript] Problema costrutto if Javascript 0

Discussioni simili