javascript controllo campo

elisamito

Utente Attivo
5 Ott 2004
104
0
0
39
www.photobook-elisa.135.it
Ciao ragazzi!
Sto studiando un pò di javascript e mi sto creando dei controlli campo, vorrei tanto sapere come fare un controllo campo dove il contenuto del campo dev'èssere un numero intero ossia senza decimali, nel caso in cui l'utente inserisce un numero con dei decimali che esca il messaggio di errore...qualcuno ha qualche script da segnalarmi...?spero mi possiate aiutare!
Grazie!!
:)
 
Faccio chiarezza

isNaN vuol dire "is not a number"

1,5 ha la virgola ed anche 1.5 e quindi non vengono riconosciuti come tali

Se vai nella sezione Tutorial/Javascript trovi diversi articoli che ho scritto in merito, anche per verificare cose come numeri negativi piuttosto che pari o dispari.

Ciao ;)
 
Ciao Luca!
Grazie mille del tuo script è fantastico!
Da quanto ho capito il . e la virgola lo riconosce come testo e non come numero...però sai che quando scrivo ad esempio 12.34 , con il . me lo passa...come mai...
 
mmm... è vero, il punto è visto come separatore decimale... quindi bisogna potenziare il controllo

var numero = document.modulo.numero.value;
if (isNaN(numero))
{
alert("Errore! ...");
}
else if (String(numero).indexOf(".") != (-1))
{
alert("Errore! ...");
}
else
{
alert("OK! ...");
}

fammi sapere!

:byebye:
 
te lo chiedo adesso, non è un guaio aggiungere un post in più...

In pratica la cosa che ho provato a fare è questa, farsi che il campo venga controllato dal momento in cui inserisco del testo poichè nn vorrei che il campo venga considerato obbligatorio... guarda questo è lo script che controlla la data


if (document.FrmDati.dDataCessazione.value.substring(2,3) != "/" ||
document.FrmDati.dDataCessazione.value.substring(5,6) != "/" ||
isNaN(document.FrmDati.dDataCessazione.value.substring(0,2)) ||
isNaN(document.FrmDati.dDataCessazione.value.substring(3,5)) ||
isNaN(document.FrmDati.dDataCessazione.value.substring(6,10)))


-----> if !(docuemnt.FrmDatu.dDataCessazione.value="") <---


{
alert("Formato Data Cessazione non corretto:Inserire data in formato gg/mm/aaaa");
document.FrmDati.dDataCessazione.value = "";
document.FrmDati.dDataCessazione.focus();
return false;
}
else if (document.FrmDati.dDataCessazione.value.substring(0,2) > 31) {
alert("Formato Data Cessazione non corretto:Impossibile utilizzare un valore superiore a 31 per i giorni");
document.FrmDati.dDataCessazione.select();
return false;
}
else if (document.FrmDati.dDataCessazione.value.substring(3,5) > 12) {
alert("Formato Data Cessazione non corretto:Impossibile utilizzare un valore superiore a 12 per i mesi");
document.FrmDati.dDataCessazione.value = "";
document.FrmDati.dDataCessazione.focus();
return false;
}
else if (document.FrmDati.dDataCessazione.value.substring(6,10) < 1900) {
alert("Formato Data Cessazione non corretto:Impossibile utilizzare un valore inferiore a 1900 per l'anno");
document.FrmDati.dDataCessazione.value = "";
document.FrmDati.dDataCessazione.focus();
return false;
}


ho provato ad aggiungere if !(docuemnt.FrmDatu.dDataCessazione.value="")

ma niente da fare...mi aiuteresti a correggere?
Grazie!
 
mmmmm... devi fare anche un controllo sulla lunghezza della stringa, perché tu vai a beccare delle posizioni ben precise e quindi se io scrivessi

1/1/2006

invece di

01/01/2006

non ti funzionerebbe più!

poi userei if (docuemnt.FrmDatu.dDataCessazione.value!="")
prima di tutti in modo da inglobare tutti i controlli:


if (docuemnt.FrmDatu.dDataCessazione.value!="") {
tutti controlli
}
 

Discussioni simili