Salve ragazzi,
Ho un problema per me un po' strano.
Vi spiego subito.
Ho una funzione js che mi calcola la differenza di giorni fra 2 date.
la funzione la richiamo tramite l'evento onclick: <img src="images/refresh_small.png" style="cursor
ointer" onClick="giorni_differenza(<%=date()%>,document.form1.dataConf.value);">
La funzione stranamente funziona SOLO 1 volta!
Anche non cambiando il valore del campo dataConf, ho anche provato a richiamare la funzione con due date fisse
giorni_differenza('01/01/2013','20/01/2013');
Firebug mi segnala "TypeError: giorni_differenza is not a function" sempre e solo al secondo click!
Che caspita può essere?
Ho un problema per me un po' strano.
Vi spiego subito.
Ho una funzione js che mi calcola la differenza di giorni fra 2 date.
Codice:
<!-- Calcolare differenza in giorni tra due date -->
function controllo_data(stringa){
var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
if (!espressione.test(stringa))
{
return false;
}else{
anno = parseInt(stringa.substr(6),10);
mese = parseInt(stringa.substr(3, 2),10);
giorno = parseInt(stringa.substr(0, 2),10);
var data=new Date(anno, mese-1, giorno);
if(data.getFullYear()==anno && data.getMonth()+1==mese && data.getDate()==giorno){
return true;
}else{
return false;
}
}
}
function confronta_data(data1, data2){
data1str = data1.substr(6)+data1.substr(3, 2)+data1.substr(0, 2);
data2str = data2.substr(6)+data2.substr(3, 2)+data2.substr(0, 2);
if (data2str-data1str<0) {
return false;
}else{
return true;
}
}
function giorni_differenza(data1,data2){
if(!controllo_data(data1) || !controllo_data(data2)){
alert('Inserire le date nel formato gg/mm/aaaa');
return -1;
}
if(!confronta_data(data1,data2)){
alert('La data di inizio deve essere precedente quella di fine');
return -1;
}
anno1 = parseInt(data1.substr(6),10);
mese1 = parseInt(data1.substr(3, 2),10);
giorno1 = parseInt(data1.substr(0, 2),10);
anno2 = parseInt(data2.substr(6),10);
mese2 = parseInt(data2.substr(3, 2),10);
giorno2 = parseInt(data2.substr(0, 2),10);
var dataok1=new Date(anno1, mese1-1, giorno1);
var dataok2=new Date(anno2, mese2-1, giorno2);
differenza = dataok2-dataok1;
giorni_differenza = new String(differenza/86400000);
document.form1.ggAnt.value=giorni_differenza
/*alert(giorni_differenza+' giorni di differenza');
return giorni_differenza;*/
}
la funzione la richiamo tramite l'evento onclick: <img src="images/refresh_small.png" style="cursor

La funzione stranamente funziona SOLO 1 volta!
Anche non cambiando il valore del campo dataConf, ho anche provato a richiamare la funzione con due date fisse
giorni_differenza('01/01/2013','20/01/2013');
Firebug mi segnala "TypeError: giorni_differenza is not a function" sempre e solo al secondo click!
Che caspita può essere?