Il titolo non č molto esaustivo, mi spiego:
questo js mi controlla i campi di un form:
Ora l'action del form č impostata a sč stesso poichč deve prelevare dati da db al onChange di una select:codice:<script language="JavaScript" type="text/javascript"> <!-- function controlla_dati(){ var val_nome=document.personale.nome.value; var val_cognome=document.personale.cognome.value; var val_nato=document.personale.nato.value; var val_gg=document.personale.gg.value; var val_mm=document.personale.mm.value; var val_aa=document.personale.aa.value; var val_ind=document.personale.ind.value; var val_cap=document.personale.cap.value; var val_prov=document.personale.prov.value; var val_city=document.personale.city.value; var val_email=document.personale.email.value; var val_telcasa=document.personale.telcasa.value; var val_teluff=document.personale.teluff.value; var val_cell=document.personale.cell.value; if (val_cognome == "") { alert('Attenzione inserire il cognome.'); document.personale.cognome.focus(); return false; } if (val_nome == "") { alert('Attenzione inserire il nome.'); document.personale.nome.focus(); return false; } if (val_nato == "") { alert('Attenzione inserire il luogo di nascita.'); document.personale.nato.focus(); return false; } if ((val_gg.length < 2) || (val_gg > 31)) { alert('Attenzione giorno di nascita non valido.'); document.personale.gg.focus(); return false; } if ((val_mm.length < 2) || (val_mm > 12)) { alert('Attenzione mese di nascita non valido.'); document.personale.mm.focus(); return false; } if ((val_aa.length < 4) || (val_aa > <?php echo"$year"; ?>)) { alert('Attenzione anno di nascita non valido.'); document.personale.aa.focus(); return false; } if (val_ind == "") { alert('Attenzione inserire indirizzo.'); document.personale.ind.focus(); return false; } if (val_cap == "") { alert('Attenzione inserire il C.A.P.'); document.personale.cap.focus(); return false; } if (val_prov == "") { alert('Attenzione specificare la provincia.'); document.personale.prov.focus(); return false; } if (val_city == "") { alert('Attenzione specificare la cittą.'); document.personale.city.focus(); return false; } // -------- controllo che sia maggiorenne var g_n = parseInt(document.personale.gg.value); var m_n = parseInt(document.personale.mm.value); var a_n = parseInt(document.personale.aa.value); var nasc = new Date(a_n, m_n-1, g_n); var nasc = new Date(val_aa, val_mm, val_gg); var magg = new Date(<?php echo"$year, $month, $day"; ?>); magg.setFullYear(magg.getFullYear()-18); if (nasc > magg) { alert('Attenzione non č stato compiuto il 18 anno'); return false; } // -------- controllo che ci sia almeno un numero di telefono if((val_telcasa == "") && (val_teluff == "") && (val_cell == "")) { alert("Inserire almeno un recapito telefonico"); document.personale.telcasa.focus(); return false; } // ---------- controllo indirizzo email if(val_email != "") { Filtro = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-]{2,})+\.)+([a-zA-Z0-9]{2,})+$/; if (Filtro.test(val_email)) return true; else { alert("L'indirizzo e-mail inserito non č valido, controllare prego"); document.personale.email.focus(); return false; } } // ---------------------------------------- } //--> </script>
<form method="post" action="#" name="personale">
per effettuare poi il controllo dei vari campi l'invio del modulo ho creato questo submit:
<input class="smb" type="submit" value="AVANTI >" onMouseDown="return controlla_dati();" onMouseUp="this.form.action='step2.php';">
Ora con explorer e opera funziona benissimo ma con firefox, in caso di errori contemplati nella funzione controlla_dati() mi fa apparire l'alert e subito dopo invia il modulo a step2.php.
Dato che, come avrete capito, non sono ferratissimopotete suggerirmi qualche alternativa/soluzione al mio problema?

potete suggerirmi qualche alternativa/soluzione al mio problema?
Rispondi quotando