Visualizzazione dei risultati da 1 a 4 su 4

Discussione: form e java script

  1. #1

    form e java script

    ciao,

    ho un problemino con questo script.

    i controlli dei form funzionano correttamente se messi in una pagina con un form standard.

    il mio problema è questo nella mia pagina c'è un link che mi richiama la funzione javascript vai.

    devo fare in modo che controlli la quantità che sia un numero decimale o intero.

    nella mia pagina ci avrò più text di form chiamati quantita+un progressivo.

    alla mia funzione vai passo il numero di riga.

    dentro a questo ho pensato di richiamare la vunzione che mi fa i controlli del form.

    ma non funziona perchè non passa alla funzione Validate il nome corretto del form.

    il form si chiama passa.

    spero di essere stata abbastanza chiara.


    grazie

    manu

    ----------------------------------------------------------------------
    <script language="JavaScript">
    //variabile globale usata come flag di errore
    var err=false;

    //funzione per controllare la lunghezza che non sia minore al parametro len
    function lungok(item,len)
    { return(item.length>=len);}

    //funzione per controllare che nel campo di testo ci sia almeno un carattere
    function txtok(item,l)
    { var valido=false;
    var i=0;

    if (l!=0 && lungok(item,l)) return false;

    while (item.length>i && !valido)
    { if(item.charAt(i) !=" ")
    valido=true;
    i++;
    }
    return (valido);
    }

    //funzione per controllare se è un numero intero
    function numint(item)
    { var valido=false;
    var punto=item.indexOf('.',0);

    if (txtok(item) && !isNaN(item) && punto==-1) return true;
    else return false;
    }

    //funzione per controllare se è un numero decimale (ex: 78.9 ==> bisogna utilizzare il punto)
    function numdec(item)
    { var valido=false;
    var punto=item.indexOf('.',0);
    var doppiopunto=item.indexOf('.',punto+1);
    var a=parseInt(item.length);
    var b=parseInt(punto+1);
    var decimali=a-b;

    if (numint(item)) return true;
    else
    { if (txtok(item) && !isNaN(item) && (decimali<=3) && (doppiopunto==-1)) return true;
    else return false;
    }
    }

    //visualizza un avviso di errore
    function error(item,text)
    {//interruzione appena abbiamo trovato un errore
    if(err)return;
    window.alert(text);
    item.select();
    item.focus();
    err=true;
    }

    //funzione principale di convalida
    function Validate(quantita)
    { err=false;


    if(!numdec(document.passa.quantita.value))
    error(document.passa.quantita,"Inserisci un numero");

    return !err; /*true se non ci sono errori*/
    }

    function vai(dett,riga,ordine,azienda)
    {

    commento = "commento" + riga;
    quantita = "quantita" + riga;

    if(Validate(quantita))
    url="insupcanord.php?id_cliente="+azienda+"&id_ord ine="+ordine+"&id_dettaglio="+dett+"&commento="+do cument.passa[commento].value+"&quantita="+document.passa[quantita].value;

    document.location.href = url;

    }

    </script>

  2. #2
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367

    Re: form e java script

    Ciao follia80,

    se quantita è una variabile contenente il nome del campo da controllare non devi fare
    codice:
    document.passa.quantita.value
    ma
    codice:
    document.passa.elements[quantita].value
    poi per controllare che una stringa sia un numero intero o decimale puoi usare
    isNaN(variabile)
    isNaN vuol dire is Not a Number... restituisce true se variabile non è un numero

  3. #3
    ciao grazie funziona ho un piccolo probelma ancora:

    function Validate(quantita)
    { err=false;


    if(!numdec(document.passa.elements[quantita].value))
    error(document.passa.elements[quantita],"Inserisci un numero");

    return !err; /*true se non ci sono errori*/
    }

    function vai(dett,riga,ordine,azienda)
    {

    commento = "commento" + riga;
    quantita = "quantita" + riga;

    if(Validate(quantita))
    url="insupcanord.php?id_cliente="+azienda+"&id_ord ine="+ordine+"&id_dettaglio="+dett+"&commento="+do cument.passa[commento].value+"&quantita="+document.passa[quantita].value;

    document.location.href = url;

    }

    questo è il mio codice modificato ma adesso però quando non è inserito in modo corretto il numero mi fa uscire la vinestrella che me lo sequala ma poi mi va in errore dicemdo che è nullo url.

    se invece scrivo il numero giusto non mi fa la funzione url.

    cosa sbaglio.

    grazie

    emanuela

  4. #4
    Utente di HTML.it L'avatar di willybit
    Registrato dal
    May 2001
    Messaggi
    4,367
    beh... io farei così
    codice:
    function Validate(quantita){
    	isDec=numdec(document.passa.elements[quantita].value)
    	if(!isDec)
    		error(document.passa.elements[quantita],"Inserisci un numero");
    	return isDec; /*true se non ci sono errori*/
    }
    	
    function vai(dett,riga,ordine,azienda){
    	commento = "commento" + riga;
    	quantita = "quantita" + riga;
    	if(Validate(quantita)){
    		url="insupcanord.php?id_cliente="+azienda+"&id_ordine="+ordine+"&id_dettaglio="+dett+"&commento="+document.passa[commento].value+"&quantita="+document.passa[quantita].value;
    		document.location.href = url;
    	}
    }
    che dici?

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.