Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 16 su 16
  1. #11
    beh, c'erano sicuramente un paio di errori di battitura che mi auguro tu abbia corretto (in particolare un segno '>' al posto sbagliato.

    Ma corretti quelli su FF a me va.

    C'e' pero' un errore di fondo nella tua parte di codice: infatti alla fine della funzione 'controlla' hai messo corretto=true. Questa riga viene sempre eseguita per cui alla fine 'corretto' vale sempre e comunque true.

    D'altronde non puoi sperare di poter controllare un campo per volta. Perche' e' vero che e' sufficiente che solo uno sia errato per bloccare il submit. Ma per permettere il submit devi essere sicuro che entrambi siano corretti.

    Se hai bisogno sono al PC ancora un po', posso correggere gli errori e postare un codice che funzioni.

    Fammi sapere, ciao

  2. #12
    Ti ringrazio, sei gentilissimo.

    Ma creando il bottone così:

    codice:
    <input type="button" name="Invia" value="Invia" onClick="java-script: invia()">
    ed usando la funzione invia() così come l'hai scritta, al momento del click su Invia non accade nulla qualunque sia l'input (n.b. sia con explorer 7 che con f.f.)

    p.s.: l'errore su corretto=true è un errore logico, e sebbene vada ovviamente corretto, non credo che influenzi questo problema... giusto?

  3. #13
    si', ma il problema di questo forum e' che ogni tanto aggiunge dei caratteri che non ci sono... in particolare spezza la parola javascript in java-script...

    un altro errore 'logico' e' che alla fine non viene mai dato l'errore sul campo vuoto. Perche' i due if di verifica (campo vuoto oppure caratteri non numerici) vengono sempre eseguiti entrambi e il secondo sovrascrive il primo.

    di seguito un codice 'funzionate' (le virgolette sono d'obbligo... non si e' mai sicuri di niente)

    codice:
    <html>
        <head>
            <script>
                function invia()
                {
                    ok = controlla_tutto();
                    if (ok)
                        document.MyForm.submit();
                }
    
                function controlla_tutto()
                {
                    ok = controlla('mytext', 'errore1') & controlla('mytext2', 'errore2');
                    // attento una sola '&' altrimenti non valuta il secondo controllo!!!
                    return ok;
                }
               
    
                function controlla(campo, errore)
                {
                    corretto = true;
                    var ricerca = document.getElementById(campo).value;
                    var el = document.getElementById(errore);
                    if(ricerca=="")
                    {
                        el.style.display = "block";
                        el.innerHTML="errore: hai inserito il campo vuoto";
                        corretto = false;
                    }
                    else if(!ricerca.match(/^\d+([\.]\d*)?$/))
                    {
                        el.style.display = "block";
                        el.innerHTML="errore: hai inserito caratteri vietati,sono ammesse solo cifre ed il punto!";
                        corretto = false;
                    }
                    if(corretto)
                        el.innerHTML="";
                    return corretto;
                }                 
            </script>
        </head>
        <body>
            <form name="MyForm" ACTION="http://localhost/cgi-bin/xxx.cgi" method="POST" onsubmit="return submit();">
            <input type="text" name="mytext" id="mytext" onBlur="controlla_tutto();">
                <font color="red" size="1"><div id="errore1" style="height: 10px;"> </div></font>
    
                <input type="text" name="mytext2" id="mytext2" onBlur="controlla_tutto();">
                <font color="red" size="1"><div id="errore2" style="height: 10px;"> </div></font>
    
                <input type="button" VALUE="verifica campi (senza inviare)" onClick="controlla_tutto();" >
                <input type="button" name="INVIA" value="INVIA" onClick="javascript:invia()">
                <input type="reset" name="reset" value="Reset">
            </form>
        </body>
    </html>

  4. #14
    è vero, non me ne ero proprio accorto del "javascript" che diventava "java-script"....

    E' tutto ok ora, vorrei solo cercare di eliminare la visualizzazione del messaggio d'errore nel secondo campo dopo aver completato la scrittura nel primo (è ovvio che il secondo sia vuoto se non ho ancora cominciato a scriverci niente...)

    In ogni caso grazie infinite...

  5. #15
    In effetti hai ragione...

    beh, in questo caso sull'onBlur puoi lasciare come avevi messo prima:

    onblur=controlla('mytext', 'errore1');

  6. #16
    Tutto risolto. Grazie infinite.

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.