Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Controllo dati da form

  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42

    Controllo dati da form

    Ho una pagina con una serie di form tutti fatti allo stesso modo

    codice:
    <form action='carrello.asp' method='GET' name='carrello'  onSubmit='return controllo(this.quantita.value,100)'>
    <input type='text' name='quantita' size='4' value='0'>
    <input type='submit' value='SELEZIONA'>
    </form>
    
    <form action='carrello.asp' method='GET' name='carrello'  onSubmit='return controllo(this.quantita.value,200)'>
    <input type='text' name='quantita' size='4' value='0'>
    <input type='submit' value='SELEZIONA'>
    </form>
    La mia funzione è

    codice:
    <script type="text/javascript">
    	function controllo(ordine, totale) {
    		if (ordine <= totale) {
    			return true;
    		}
    		else {
    			window.alert("Troppo!");
    			return false;
    		}
    	}
    </script>
    ma non entra nella funzione sapreste aiutarmi?

  2. #2
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    Ho provato a creare una semplice paginetta inserendo il codice che hai postato. A me funziona correttamente. La funzione viene richiamata e la condizione viene eseguita regolarmente.

    E' possibile che tu abbia qualche altro errore sulla tua pagina, nell'html o più probabile nel javascript, che magari ti blocca la regolare esecuzione.

    Eventualmente fai un controllo con la console degli errori sul tuo browser per verificare che non ci siano errori nel codice.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42
    ho w3c validator... non segna nessun errore e i dati vengono inviati correttamente...
    cosa potrebbe essere

  4. #4
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    non so.. possiamo provare a fare un debug andando passo passo per vedere dove sta il problema.

    Prima di tutto controlla che il javascript sia abilitato nel tuo browser.

    Analizziamo poi la funzione:
    codice:
    function controllo(ordine, totale) {
    	if (ordine <= totale) {
    		return true;
    	}
    	else {
    		window.alert("Troppo!");
    		return false;
    	}
    }
    La condizione dovrebbe bloccare il submit se il valore inserito è più alto rispetto al totale specificato. Giusto? e in tal caso deve darti un alert.

    Tu hai provato a inserire valori sia più alti che più bassi del relativo totale specificato?
    Il submit viene eseguito in qualunque caso?

    Hai scritto che "non entra nella funzione". Verifichiamo che sia proprio così.

    Potresti mettere un alert all'inizio della funzione per vedere se effettivamente la funzione non è richiamata:
    codice:
    function controllo(ordine, totale) {
    	alert("sono dentro la funzione controllo");
    	if (ordine <= totale) {
    		return true;
    	}
    	else {
    		window.alert("Troppo!");
    		return false;
    	}
    }
    Se l'alert ti compare, significa che la funzione è richiamata.
    Fai questa prova e vediamo che succede prima di andare avanti con ulteriori verifiche.
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  5. #5
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42
    javascript funziona perchè in altre pagine i controlli me li fa correttamente.

    avevo già provato con un alert iniziale e non lo fa, per questo credo ci sia qualche errore nel corpo del messaggio.... però w3c non segna nulla e la sottomissione è sempre corretta...


    ho fatto un'ulteriore prova..
    ho riportato questa stessa porzione di testo su una pagina pulita e continua a non funzionare O.o

    non è nemmeno un problema della pagina originale in asp allora

  6. #6
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42
    Ehm... volevo ripulire il codice per renderlo più leggibile ma ho cancellato proprio il pezzo che non funzionava


    codice:
    <script type="text/javascript">
    	function controllo(ordine, totale) {
    		var expr = /^[0-9]{1,}$/;
    
    		if (expr.test(ordine)) {
    			if (ordine <= totale) {
    				return true;
    			}
    			else {
    				window.alert("Troppo!");
    				return false;
    			}
    		}
    		else {
    			window.alert("Errore!");
    			return false;
    		}
    	}
    </script>
    Questo è il codice integrale così com'è sulla mia pagina... l'errore e nell'espressione regolare...perchè senza di quella va...

  7. #7
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    strano...

    Sulla nuova pagina hai utilizzato lo stesso doctype? e hai verificato la validazione anche su quella?

    Giusto per avere un riscontro, ti posto il codice completo della prova che ho fatto io e che funziona:
    codice:
    <!DOCTYPE HTML>
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
    <title>Controllo dati da form</title>
    <script type="text/javascript">
    	function controllo(ordine, totale) {
    		if (ordine <= totale) {
    			return true;
    		}
    		else {
    			window.alert("Troppo!");
    			return false;
    		}
    	}
    </script>
    </head>
    <body>
      <form action='carrello.asp' method='GET' name='carrello'  onSubmit='return controllo(this.quantita.value,100)'>
      <input type='text' name='quantita' size='4' value='0'>
      <input type='submit' value='SELEZIONA'>
      </form>
    
      <form action='carrello.asp' method='GET' name='carrello'  onSubmit='return controllo(this.quantita.value,200)'>
      <input type='text' name='quantita' size='4' value='0'>
      <input type='submit' value='SELEZIONA'>
      </form>
    </body>
    </html>
    Provato su vista con IE9, FF12, Chrome.
    La funzione e il codice javascript non danno nessun problema. Il controllo viene fatto regolarmente. Se il valore rientra nel limite viene richiamata la pagina in action (che nel mio caso non esiste ma apre comunque la pagina di errore) altrimenti mi salta fuori l'alert.

    Prova a creare una pagina con questo codice e verificare se continua a non funzionarti.
    In tal caso il problema è nel tuo browser.
    O altrimenti fai delle prove, con la tua pagina, su altri browser per verificare se il problema possa dipendere, appunto, dal tuo browser.

    EDIT: ah ok, quindi dipende dall'espressione regolare.. non ne capisco molto ma vedo che c'è una virgola volante qui {1,} ... potrebbe essere quello? altrimenti attendi qualche altra risposta
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  8. #8
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42
    si scusa
    mi sono accorta dopo di aver "pulito" lo script -.-"""


    il problema è nell'espressione regolare a questo punto... però nei controlli che faccio a lato server funziona correttamente e blocca tutti i dati non corretti...


    Comunque come cdc uso questa

    codice:
    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
    	"http://www.w3.org/TR/html4/strict.dtd">
    
    <%@ LANGUAGE="JavaScript" %>
    
    
    <html>
    <head>
    	<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

  9. #9
    Moderatore di CSS L'avatar di KillerWorm
    Registrato dal
    Apr 2004
    Messaggi
    5,771
    ..ok, vedi mio edit nel precedente post..
    non ne so molto di sintassi delle exp regolari, faccio qualche ricerca o attendi altre risposte.
    Perlomeno hai identificato dove sta il problema
    Installa Forum HTML.it Toolset per una fruizione ottimale del Forum

  10. #10
    Utente di HTML.it
    Registrato dal
    Jun 2012
    Messaggi
    42
    {1,} significa almeno 1 cifra

    il tuo codice funziona.

    però l'espressione regolare a lato server è la stessa e non da problemi
    è per questo che la cosa mi sembra strana...

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 © 2025 vBulletin Solutions, Inc. All rights reserved.