Ciao, io ci sto diventando pazzo da giorni e non è cosa :boxing:
In pratica sto creando uno script che generi dei tooltip sui campi data ( giorno, mese e anno ) quando si inserisce una data non valida ( es: 31 aprile, 30 febbraio, ecc. ).
tralasciando la questione del tooltip che è creato da Bootstrap, per il resto è semplice javascript ( a dire il vero c'è tanto jquey per la gestione degli eventi )
Ecco lo script incriminato:
E questa la pagina online dove verificare quanto inserito: http://gamerama.altervista.org/iscrizione.php ( ovviamente non si può ancora iscrivere nulla ).
Se riuscite a darmi una mano ve ne sarò grato, io ci sto sbattendo la testa.
Grazie!
PS: so bene che ci sono script già pronti che fanno la stessa cosa, ma, non è divertente e ne si impara nulla a fare ctrl-c / ctrl-v :faraone:
In pratica sto creando uno script che generi dei tooltip sui campi data ( giorno, mese e anno ) quando si inserisce una data non valida ( es: 31 aprile, 30 febbraio, ecc. ).
tralasciando la questione del tooltip che è creato da Bootstrap, per il resto è semplice javascript ( a dire il vero c'è tanto jquey per la gestione degli eventi )
Ecco lo script incriminato:
Codice:
// Verifica data
function verificaData( g, m, a ) {
if ( m == 2 && a > 0 && g > 28 ) {
// regola per l'anno bisesto: (anno % 400 == 0 || (anno % 100 != 0 && anno % 4 == 0))
$( '#giorno' ).popover( 'destroy' );
if ( a % 400 == 0 || ( a % 100 != 0 && a % 4 == 0 )) {
if ( g > 29 ) {
$( '#giorno' ).popover({
title: "<h4 style=\"color: red\">C'è un errore con l'anno bisestile</h4>",
content: "<p>La data per questo mese di febbraio non può essere superiore al giorno 29.</p>",
html: true,
placement: "top auto"
});
$( '#giorno' ).popover( 'show' );
}
} else {
$( '#giorno' ).popover( 'destroy' );
if (g > 28 ) {
$( '#giorno' ).popover({
title: "<h4 style=\"color: red\">C'è un errore con il mese di febbraio</h4>",
content: "<p>La data per questo mese di febbraio non può essere superiore al giorno 28.</p>",
html: true,
placement: "top auto"
});
$( '#giorno' ).popover( 'show' );
}
}
}
if ( g > 0 && m > 0 ) {
switch ( m ) {
// Mesi di 30 giorni
case 4: case 6: case 9: case 11:
$( '#giorno' ).popover( 'destroy' );
if ( g > 30 ) {
$( '#giorno' ).popover({
title: "<h4 style=\"color: red\">C'è un errore nella data</h4>",
content: "<p>Per il mese selezionato, la data non può superare il giorno 30.</p>",
html: true,
placement: "top auto"
});
$( '#giorno' ).popover( 'show' );
}
break;
case 2:
$( '#giorno' ).popover( 'destroy' );
if ( g > 28 && a == 0 ) {
$( '#giorno' ).popover({
title: "<h4 style=\"color: red\">C'è un errore con il mese di febbraio</h4>",
content: "<p>La data per questo mese di febbraio non può essere superiore al giorno 28.</p>",
html: true,
placement: "top auto"
});
$( '#giorno' ).popover( 'show' );
}
break;
}
}
};
// Verifica data di nascita
$( '#giorno, #mese, #anno' ).bind({
change: function() {
// Verifica del giorno relativo al mese selezionato e all'anno per il case del bisestile.
verificaData( parseInt( $( '#giorno' ).val(), 10 ), parseInt( $( '#mese' ).val(), 10 ), parseInt( $( '#anno' ).val(), 10 ));
}
});
Se riuscite a darmi una mano ve ne sarò grato, io ci sto sbattendo la testa.
Grazie!
PS: so bene che ci sono script già pronti che fanno la stessa cosa, ma, non è divertente e ne si impara nulla a fare ctrl-c / ctrl-v :faraone: