Visualizzazione dei risultati da 1 a 8 su 8
  1. #1

    controllo java script form multiplo

    ciao, ho ancora un problemino con javascript.

    nel mio form ci sono tante text chiamate quantita e numero progressivo.

    devo fare in modo di controllarle una per una perchè al loro interno devono esserci solo numeri.

    ho provato a farlo e sono riuscita ma il problema sta che quando clicco sul pulsante dell'ok della window.alert poi non mi fa correggiere il dato e passa alla pagina sucessiva.

    ----------------------------------------------------------------------

    questo è il codice:

    //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;
    }

    function controllo(righe)
    {
    var i=0;
    while (i<=righe-1)
    {
    quantita = "quantita" + i;
    err=false;
    if(!numdec(document.passa.elements[quantita].value))
    error(document.passa.elements[quantita],"Inserisci un numero");
    i++;
    return !err; /*true se non ci sono errori*/
    }
    }


    ---------------------------------------------------------------------

    dove sbaglio?

    grazie

    Manu

  2. #2
    nessuno mi sa risolvere il prblema sto impazzendo

    grazie

    manu

  3. #3
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Supposto che la chiamata alle varie routine sia:
    <form ... onSubmit="return funzione();">

    occorre poi che le routine ritornino true se il controllo e` andato a buon fine e false se ci sono errori.

    Ora io non ho seguito tutto il codice per verificare questo, ma ho visto che, ad esempio, nella routine error(item,text) questo non avviene (la routine ritorna sempre true).

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  4. #4
    si nel comando di apertura del form c'è onSubmit.

    ma la variabile err la dichiaro false all'inizio.

    non è giusto?

    manu

  5. #5
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Si`, ma non la ritorni.

    Il return ritorna per default true, quindi la funzione error ritorna sempre true, e quindi il form viene spedito.

    Nel codice
    onSubmit="return funzione();"

    se la funzione ritorna true il submit viene eseguito, se la funzione ritorna false non viene eseguito.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

  6. #6
    ok, non mettevo il return.

    ma adesso se metto il retun mi controlla solo il primo campo quantita e non tutti gli altri.


    ----------------------------------------------------------------------

    <form name="passa" method="post" action="insupordini.php" onsubmit="return controllo(<?echo $num_sel_dettaglio;?>);">

    <input type="text" name="quantita<?echo $y;?>" value="<?echo $dat_sel_dettaglio->quantita;?>" size="10" class="nero10">

    ----------------------------------------------------------------------

    questo è il mio comando from e la stringa di costruzione dell'input che viene fatta sotto un for.

    grazie

    manu.

  7. #7
    ciao nessuno sa darmi una mano?

    grazie

    lela

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2001
    Messaggi
    21,188
    Se cerchi nel forum dovresti trovare qualcosa di analogo.
    Altrimenti dovresti mettere mano al tuo script e studiarne la logica.

    In pratica dovresti prima fare uno schema di quello che vuoi, e poi realizzarlo in JS. Nel tuo script sembra che hai fatto viceversa: sei partita da uno script che funzionava e lo hai voluto estendere, ma in questo modo hai perso la visione globale.

    Ciao
    Michele
    Nuova politica di maggiore severita` sui titoli delle discussioni: (ri)leggete il regolamento
    No domande tecniche in messaggi privati

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