Salve a tutti.
Non sono un conoscitore di javascript ma lo utilizzo parecchio grazie alle community del web ed i loro script.
Ho un form in cui devo inserire la data che verrà poi elaborata in asp.
Il campo ha un pulsante che apre una piccola popup con dentro un calendario; cliccando sul giorno automaticamente viene scritto nel campo data del form.
il controllo del form poi verifiva se è stato scritto nella forma corretta ( visto che si può anche non usare il calendario ) e cioè gg/mm/aaaa.
Il problema e che il calendario nella popup mi inserisce una data che se giorno o mese sono ad una cifra non aggiunge lo 0 e questo mi dà problemi a cascata sia nel controllo form che nell'inserimendo nel database.
ecco lo script che apre il calendario
questa l'imput text del formcodice:<script language="JavaScript"> // Title: Timestamp picker // Description: See the demo at url // URL: http://us.geocities.com/tspicker/ // Script featured on: http://javascriptkit.com/script/script2/timestamp.shtml // Version: 1.0 // Date: 12-05-2001 (mm-dd-yyyy) // Author: Denis Gritcyuk <denis@softcomplex.com>; <tspicker@yahoo.com> // Notes: Permission given to use this script in any kind of applications if // header lines are left unchanged. Feel free to contact the author // for feature requests and/or donations function show_calendar(str_target, str_datetime) { var arr_months = ["Gennaio", "Febbraio", "Marzo", "Aprile", "Maggio", "Giugno", "Luglio", "Agosto", "Settembre", "Ottobre", "Novembre", "Dicembre"]; var week_days = ["Do", "Lu", "Ma", "Me", "Gi", "Ve", "Sa"]; var n_weekstart = 1; // day week starts from (normally 0 or 1) var dt_datetime = (str_datetime == null || str_datetime =="" ? new Date() : str2dt(str_datetime)); var dt_prev_month = new Date(dt_datetime); dt_prev_month.setMonth(dt_datetime.getMonth()-1); var dt_next_month = new Date(dt_datetime); dt_next_month.setMonth(dt_datetime.getMonth()+1); var dt_firstday = new Date(dt_datetime); dt_firstday.setDate(1); dt_firstday.setDate(1-(7+dt_firstday.getDay()-n_weekstart)%7); var dt_lastday = new Date(dt_next_month); dt_lastday.setDate(0); // html generation (feel free to tune it for your particular application) // print calendar header var str_buffer = new String ( "<html>\n"+ "<head>\n"+ " <title>Calendar</title>\n"+ "</head>\n"+ "<body bgcolor=\"White\">\n"+ "<table class=\"clsOTable\" cellspacing=\"0\" border=\"0\" width=\"100%\">\n"+ "<tr><td bgcolor=\"#4682B4\">\n"+ "<table cellspacing=\"1\" cellpadding=\"3\" border=\"0\" width=\"100%\">\n"+ "<tr>\n <td bgcolor=\"#4682B4\"><a href=\"javascript:window.opener.show_calendar('"+ str_target+"', '"+ dt2dtstr(dt_prev_month)+"'+document.cal.time.value);\">"+ "<img src=\"../../images/calendario_prev.gif\" width=\"16\" height=\"16\" border=\"0\""+ " alt=\"previous month\"></a></td>\n"+ " <td bgcolor=\"#4682B4\" colspan=\"5\">"+ "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">" +arr_months[dt_datetime.getMonth()]+" "+dt_datetime.getFullYear()+"</font></td>\n"+ " <td bgcolor=\"#4682B4\" align=\"right\"><a href=\"javascript:window.opener.show_calendar('" +str_target+"', '"+dt2dtstr(dt_next_month)+"'+document.cal.time.value);\">"+ "<img src=\"calendario_next.gif\" width=\"16\" height=\"16\" border=\"0\""+ " alt=\"next month\"></a></td>\n</tr>\n" ); var dt_current_day = new Date(dt_firstday); // print weekdays titles str_buffer += "<tr>\n"; for (var n=0; n<7; n++) str_buffer += " <td bgcolor=\"#87CEFA\">"+ "<font color=\"white\" face=\"tahoma, verdana\" size=\"2\">"+ week_days[(n_weekstart+n)%7]+"</font></td>\n"; // print calendar table str_buffer += "</tr>\n"; while (dt_current_day.getMonth() == dt_datetime.getMonth() || dt_current_day.getMonth() == dt_firstday.getMonth()) { // print row heder str_buffer += "<tr>\n"; for (var n_current_wday=0; n_current_wday<7; n_current_wday++) { if (dt_current_day.getDate() == dt_datetime.getDate() && dt_current_day.getMonth() == dt_datetime.getMonth()) // print current date str_buffer += " <td bgcolor=\"#FFB6C1\" align=\"right\">"; else if (dt_current_day.getDay() == 0 || dt_current_day.getDay() == 6) // weekend days str_buffer += " <td bgcolor=\"#DBEAF5\" align=\"right\">"; else // print working days of current month str_buffer += " <td bgcolor=\"white\" align=\"right\">"; if (dt_current_day.getMonth() == dt_datetime.getMonth()) // print days of current month str_buffer += "<a href=\"javascript:window.opener."+str_target+ ".value='"+dt2dtstr(dt_current_day)+"'; window.close();\">"+ "<font color=\"black\" face=\"tahoma, verdana\" size=\"2\">"; else // print days of other months str_buffer += "<a href=\"javascript:window.opener."+str_target+ ".value='"+dt2dtstr(dt_current_day)+"'+; window.close();\">"+ "<font color=\"gray\" face=\"tahoma, verdana\" size=\"2\">"; str_buffer += dt_current_day.getDate()+"</font></a></td>\n"; dt_current_day.setDate(dt_current_day.getDate()+1); } // print row footer str_buffer += "</tr>\n"; } // print calendar footer str_buffer += "<form name=\"cal\">\n<tr><td colspan=\"7\" bgcolor=\"#87CEFA\">"+ "<font color=\"White\" face=\"tahoma, verdana\" size=\"2\">"+ "Time: <input type=\"text\" name=\"time\" value=\""+dt2tmstr(dt_datetime)+ "\" size=\"8\" maxlength=\"8\"></font></td></tr>\n</form>\n" + "</table>\n" + "</tr>\n</td>\n</table>\n" + "</body>\n" + "</html>\n"; var vWinCal = window.open("", "Calendar", "width=200,height=250,status=no,resizable=yes,top=200,left=300"); vWinCal.opener = self; var calc_doc = vWinCal.document; calc_doc.write (str_buffer); calc_doc.close(); } // datetime parsing and formatting routimes. modify them if you wish other datetime format function str2dt (str_datetime) { var re_date = /^(\d+)\-(\d+)\-(\d+)\s+(\d+)\:(\d+)\:(\d+)$/; if (!re_date.exec(str_datetime)) return alert("Invalid Datetime format: "+ str_datetime); return (new Date (RegExp.$3, RegExp.$2-1, RegExp.$1, RegExp.$4, RegExp.$5, RegExp.$6)); } function dt2dtstr (dt_datetime) { return (new String ( dt_datetime.getDate()+"/"+(dt_datetime.getMonth()+1)+"/"+dt_datetime.getFullYear()+" ")); } function dt2tmstr (dt_datetime) { return (new String ( dt_datetime.getHours()+":"+dt_datetime.getMinutes()+":"+dt_datetime.getSeconds())); } </script>
questo il controllo del formcodice:<input type="Text" id="data_inserimento" name="data_inserimento" value="" > <a href="javascript:show_calendar('document.modulo.data_inserimento', document.modulo.data_inserimento.value);"> [img]../../images/calendario.gif[/img]</a> gg/mm/aaaa
ho bisogno della data gg/mm/aaaacodice://Effettua il controllo sul campo Data_inserimento else if (document.modulo.data_inserimento.value.substring(2,3) != "/" || document.modulo.data_inserimento.value.substring(5,6) != "/" || isNaN(document.modulo.data_inserimento.value.substring(0,2)) || isNaN(document.modulo.data_inserimento.value.substring(3,5)) || isNaN(document.modulo.data_inserimento.value.substring(6,10))) { alert("Inserire per la data di inserimento una data in formato gg/mm/aaaa"); document.modulo.data_inserimento.value = ""; document.modulo.data_inserimento.focus(); return false; } else if (document.modulo.data_inserimento.value.substring(0,2) > 31) { alert("Impossibile utilizzare un valore superiore a 31 per i giorni"); document.modulo.data_inserimento.select(); return false; } else if (document.modulo.data_inserimento.value.substring(3,5) > 12) { alert("Impossibile utilizzare un valore superiore a 12 per i mesi"); document.modulo.data_inserimento.value = ""; document.modulo.data_inserimento.focus(); return false; } else if (document.modulo.data_inserimento.value.substring(6,10) < 1990) { alert("Impossibile utilizzare un valore inferiore a 2005 per l'anno"); document.modulo.data_inserimento.value = ""; document.modulo.data_inserimento.focus(); return false; }
Potete aiutarmi?

Rispondi quotando
