Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934

    Controllo. come mai verifica che mancano i dati nel form ma non lo blocca?

    Ciao a tutti.

    Ho fatto uno script che mi controlla se i dati inseriti nel form sono giusti, tuttavia, quando verifica che alcuni sono errati, segnala l'errore, ma non ne blocca l'esecuzione. Come mai? Dove sto sbagliando?

    codice:
    <script language="javascript" type="text/javascript">
    function calcola(){
    
               var valore = document.form.quantita.value;
               espressioni = /[0-9]/;
    
               if (document.form.quantita.value=="")	{
    
               document.form.totale.value = 0 ;
               return false;
               }
    
               else if ( !espressioni.test( valore )) 	{
    
               alert("Hai inserito un valore non numerico nel campo quantita");
               return false;
               }
    
               else {
    
    	       document.form.totale.value = parseFloat((document.form.quantita.value) * document.form.prezzo_unitario.value) ;
    
               }
    
               }
    
    function controllo_campi(){
    
               var email = document.form.email.value;
    			controllo_mail = /.+@.+\.([0-9a-z]){1,4}/;
    
               if (document.form.nome.value=="")	{
    
               alert("Hai lasciato il campo <nome> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.cognome.value=="")	{
    
               alert("Hai lasciato il campo <cognome> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.indirizzo.value=="")	{
    
               alert("Hai lasciato il campo <indirizzo> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.citta.value=="")	{
    
               alert("Hai lasciato il campo <citta> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.cap.value=="")	{
    
               alert("Hai lasciato il campo <cap> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.telefono.value=="")	{
    
               alert("Hai lasciato il campo <telefono> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.email.value=="")	{
    
               alert("Hai lasciato il campo <email> vuoto. Per poter concludere l'ordine deve essere compilato");
               return false;
               }
    
               else if (document.form.quantita.value=="")	{
    
               alert("Non hai inserito la <quantita>");
               return false;
               }
    
               else if ( !controllo_mail.test( email )) 	{
    
               alert("L'indirizzo mail inserito e' errato.");
               return false;
               }
    
    		}
    
    </script>
    Ciao e grazie dell'aiuto,
    Alessandro

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    dovresti postare anche il codice del form e, se puoi, il codice js con un pò di identazione visto l'alto numero di elseif da seguire...
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    Ecco il form.


    codice:
    <form name=form action="invia_ordine.php" method=post>
    <input type=text name=nome >
    <input type=text name=cognome >
    <input type=text name=indirizzo >
    <input type=text name=citta >
    <input type=text name=cap >
    <input type=text name=telefono >
    <input type=text name=email >
    <input type=text name=quantita id=quantita onkeyup="calcola(this);">
    <input type=text id=prezzo_unitario name=prezzo_unitario value="872.00" disabled >
    <input type=text name=totale id=totale >
    <input type="submit" name="somma" value="Invia Ordine" onclick="javascript:controllo_campi()">
    </form>
    Ciao,Ale

  4. #4
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    fai il controllo sull'onsubmit del form, invece che sul tasto di submit:

    <form ... onsubmit="return controllo_campi()">
    Vuoi aiutare la riforestazione responsabile?

    Iscriviti a Ecologi e inizia a rimuovere la tua impronta ecologica (30 alberi extra usando il referral)

  5. #5
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    IL codice js se noti è piuttosto semplice(è praticamente la prima volta che lo utilizzo).

    In pratica con la prima funzione "calcola" eseguo un calcolo tra 2 campi, con la seconda controllo se i campi sono pieni e tramite una espressione lineare piuttosto facile controllo se la mail ha un aspetto coerente con quello di un indirizzo mail.

    Ciao e grazie,
    Ale

  6. #6
    Utente di HTML.it
    Registrato dal
    Jul 2001
    residenza
    rimini, san marino
    Messaggi
    934
    GRazie!

    Risolto.

    Ale

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.