Visualizzazione dei risultati da 1 a 3 su 3

Discussione: Problema OnSubmit

  1. #1

    Problema OnSubmit

    Ho un form in cui controllo i campi compilati e poi invio.
    Invece del pulsante "Submit" ho usato un'immagine con il seguente codice:
    <a href="javascript:validateform(formfun)">
    [img]immagini/btn_inserisci.gif[/img]
    </a>

    La funzione richiamata dovrebbe effettuare il controllo e se tutto è compilato correttamente effettuare il Submit:

    <script language="javascript">
    function validateform()
    {
    var msg = '';
    if (formfun.tuamail.value == '')
    msg = msg + "Il campo Tua Email deve essere compilato\n";
    if (formfun.nome.value == '')
    msg = msg + "Il campo Nome deve essere compilato\n";

    ...

    if (msg != ''){
    msg = "Sono stati rilevati i seguenti errori:\n\n" + msg;
    alert(msg);
    return
    }
    else
    return true;
    document.formfun.submit();
    }
    </script>

    Con alcuni Browser funziona tutto alla perfezione (es. IE7) con altri, non viene dato nessun errore, ma il Submit non avviene (es. Firefox 3.0.6)

    Qual'è l'errore commesso?

    Grazie a tutti

  2. #2
    Frontend samurai L'avatar di fcaldera
    Registrato dal
    Feb 2003
    Messaggi
    12,924
    innanzitutto: nella funzione passi una variabile formfun che dev'essere definita da qualche parte
    forse volevi scrivere document.formfun o document.getElementById('formfun') ?

    poi la funzione viene chiamata con quell'argomento, ma la funzione non prevede alcun parametro
    eppure al suo interno ti riferisci a 'formfun' che non si sa cosa sia.

    Poi, al posto di

    <a href="javascript:validateform(formfun)">
    [img]immagini/btn_inserisci.gif[/img]
    </a>


    metterei un <input type="image" src="immagini/btn_inserisci.gif" />
    spostando la funzione di validazione all'evento onsubmit del form
    <form... onsubmit="return validateform(this)"

    in questo modo riesci a passare alla funzione un riferimento al form, ammesso che poi nella funzione tu scriva


    function validateform(formfun) {
    ...
    }

    se ci sono errori ritorni false altrimenti niente (e il form sarà inviato senza chiamare il metodo submit() )
    Già così il codice diventa più coerente
    Vuoi aiutare la riforestazione responsabile?

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

  3. #3
    In effetti c'era un po' di confusione.
    Per la variabile formfun avevo sbagliato a copiare in realtà nella pagina c'era (this.form), comunque ho corretto secondo le tue indicazioni e provandolo con diversi browser funziona tutto correttamente.

    Grazie 1000

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.