controllo form: data inserita > maggiore di data odierna

takhisis

Nuovo Utente
23 Gen 2006
2
0
0
ciao ragazzi, è il mio primo post
ed anche la mia prima esperienza con javascript
ho creato uno script che mi permetta, all'interno di un campo, di evitare che la data inserita sia amggiore alla data odierna, ma questo controllo funziona solamente nel giorno (mese ed anno non li vede)
vi posto lo script:
____________________________________________________
function xyz() {
var datainserimento= document.modulo.inserimento.value;
var oggi = new Date();
var giorno = oggi.getDate();
var mese = oggi.getMonth() + 1;
var anno = oggi.getYear();
var datacompleta = giorno + "/" + mese + "/" + anno;

//controllo formato del mese
if (mese < 10) {
mese = "0" + mese;
}
// controllo sul valore del mese
if (mese > 12){
alert ("Il mese inserito non è valido");
}
// controllo il formato del giorno
if (giorno < 10) {
giorno = "0" + giorno;
}
// controllo sul valore del giorno
if (giorno > 31){
alert("Il giorno non è valido");
}

if (datainserimento > datacompleta) {
alert("Il campo non può contenere un valore maggiore del " + datacompleta);
document.modulo.inserimento.value = "";
document.modulo.inserimento.focus();
return false;
}
else if (document.modulo.inserimento.value.substring(6,10) < 1900)
{
alert("Impossibile utilizzare un valore inferiore a 1900");
document.modulo.inserimento.value = "";
document.modulo.inserimento.focus();
return false;
}
//INVIA IL MODULO
else {
document.modulo.action = "miosito.net";
document.modulo.submit();
}
}
________________________________________________________
chi può aiutarmi....
 
non sono lo stesso utente,
siamo colleghi e non ci siamo resi conto di aver postato il problema


cmq, ma la soluzione?
 
russeppe ha scritto:
non sono lo stesso utente,
siamo colleghi e non ci siamo resi conto di aver postato il problema


cmq, ma la soluzione?
Eh eh, non starete mica facendo a gara a chi risolve prima? :D


Scherzi a parte con le date ci lavoro sempre in ASP, in Jscript le uso solo per stampare l'ora corrente su una pagina web, ma posso però consigliarvi un'altra metodologia:

invece di un solo box dove inserire la data fatene 3, uno per il giorno, uno per il mese e uno per l'anno.
Vi dico questo perchè se l'utente invece di scrivere la data in formato
gg/mm/aaaa
la scrive in formato
gg/mm/aa
il programma non funziona più, perchè il controllo sull'anno che dev'essere maggiore di 1900 lo fate col substring.

Oltretutto potrete confrontare direttamente il giorno inserito con oggi.getDate(), il mese con oggi.getMonth() ecc, facilitando le condizioni per le varie verifiche ed evitando così di dover ricorrere a costruzioni di stringhe poi da convertire! ;)

Buon Lavoro!
:byebye:
 
si, effettivamente stiamo gareggiando :gun:

non corriamo il rischio di un inserimento sbagliato dell'anno perchè abbiamo messo un controllo (che non ho ripartato perchè non utile per questo problema) sul formato della data;
volevamo evitare di usare 3 campi per una nostra semplicità con inserimenti delle vecchie date
 

Discussioni simili