Controllo su campi Form

davidec84

Nuovo Utente
19 Nov 2007
9
0
0
Salve,

nella mia vita non ho mai programmato in javascript, ma mi trovo davanti ad un problema che riguarda questo linguaggio.

Ho utlizzato il seguente script per il controllo dei campi, in particolar modo sono interessato al campo Data:

Codice:
<script language="javascript">
 <!--

  function Modulo() {

     // Variabili associate ai campi del modulo
     var data = document.modulo.data.value;
     var numero = document.modulo.numero.value;

        //Effettua il controllo sul campo NUMERO
       if ((isNaN(numero)) || (numero == "undefined")) {
           alert("Il campo Numero deve contenere un valore numerico.");
           document.modulo.numero.value = "";
           document.modulo.numero.focus();
           return false;
        }
		
		else if (data != ""){
        //Effettua il controllo sul campo DATA
         if (document.modulo.data.value.substring(2,3) != "/" ||
           document.modulo.data.value.substring(5,6) != "/" ||
           isNaN(document.modulo.data.value.substring(0,2)) ||
           isNaN(document.modulo.data.value.substring(3,5)) ||
           isNaN(document.modulo.data.value.substring(6,10))) {
             alert("Inserire Data in formato gg/mm/aaaa");
              document.modulo.data.value = "";
              document.modulo.data.focus();
              return false;
        }


        else if (document.modulo.data.value.substring(0,2) > 31) {
           alert("Impossibile utilizzare un valore superiore a 31 per i giorni");
           document.modulo.data.select();
           return false;
        }


         else if (document.modulo.data.value.substring(3,5) > 12) {
           alert("Impossibile utilizzare un valore superiore a 12 per i mesi");
           document.modulo.data.value = "";
           document.modulo.data.focus();
           return false;
        }


         else if (document.modulo.data.value.substring(6,10) < 1900) {
           alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno");
           document.modulo.data.value = "";
           document.modulo.data.focus();
           return false;
        }
		else {
		document.modulo.action = "view.php";
           document.modulo.submit();  }
		}
        //INVIA IL MODULO
        else {
           document.modulo.action = "view.php";
           document.modulo.submit();  
		  //document.write(document.modulo.data.value);
        }
  }
 //-->
</script>

il mio problema è che se lascio vuoto il campo data mi ritorna l'alert.
Cosa devo fare per far controllare la validità del campo data solo quando è pieno?

Grazie
 
Non vorrei sbagliare ma quello script è mio :)

Scusa per l'intromissione nei tuoi desideri, ma che senso ha lasciarlo vuoto?

Ok, mi rendo conto che puoi scegliere di impostare un campo non obbligatorio ma se viene compilato dev'essere compilato secondoun certo criterio, ma nel caso dell data, se ne hai bisogno, secondome dovrebbe essere obbligatorio.
 
Ciao,
aggiungi la condizione nel blocco if:

if (document.modulo.data.value != "" && document.modulo.data.value.substring(2,3) != "/" ||
document.modulo.data.value.substring(5,6) != "/" ||
isNaN(document.modulo.data.value.substring(0,2)) ||
isNaN(document.modulo.data.value.substring(3,5)) ||
isNaN(document.modulo.data.value.substring(6,10))) {
alert("Inserire Data in formato gg/mm/aaaa");
document.modulo.data.value = "";
document.modulo.data.focus();
return false;
}

Prova e fammi sapere
Ciao
 
Per lukeonweb:

Caro luke, nel mio caso tutti i campi non sono obbligatori, perchè qualora volessi farmi tornare dalla query tutti i dati presenti in archivio non trovo altra soluzione che questa. Comunque ho preferito che la data restasse non obbligatoria perchè trattandosi di atti, che vengono caricati di anno in anno, non vorrei mettere in difficoltà utenti che non ricordassero la data dell'atto, magari solo quella e non possono accedervi "perchè non ricordano un solo dato".

Per mirkoagrati:

Grazie mille Mirko, adesso lo scritp funziona in maniera eccellente, ti ringrazio nuovamente per l'aiuto e il tempo che mettete a disposizione per noi neofiti.

Grazie
 

Discussioni simili