Ciao,
domanda banale... ma non sono riuscito...
come si fa ad associare all'evento onSubmit 2 funzioni diverse?
Io ho provato con
onSubmit="return funzione1(); funzione2();"
ma niente... mi funziona solo la prima...
Ciao,
domanda banale... ma non sono riuscito...
come si fa ad associare all'evento onSubmit 2 funzioni diverse?
Io ho provato con
onSubmit="return funzione1(); funzione2();"
ma niente... mi funziona solo la prima...
Dipende anche se le funzioni possono ritornare true o false !!!!
Comunque.... Premetto che solo funzione1() ritorna true o false.
codice:onSubmit="return funzione3()" function funzione3() { if (! funzione1()) { return false; } funzione2(); return true; }
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Ho provato questo codice
dunque... la funzione controlla_data() funziona per tutte e due i campi... mentre la funzione controllo() che verifica se i campi sono vuoti non va... e oltretutto non mi lascia accedere alla pagina successiva (pagina2)... :master:codice:<html> <head> <script language="javascript" type="text/javascript"> function controlla_data() { var Data1 = document.inviadati.Data1.value; var Data2 = document.inviadati.Data2.value; if (document.inviadati.Data1.value.substring(2,3) != "/" || document.inviadati.Data1.value.substring(5,6) != "/" || isNaN(document.inviadati.Data1.value.substring(0,2)) || isNaN(document.inviadati.Data1.value.substring(3,5)) || isNaN(document.inviadati.Data1.value.substring(6,10))) { alert("Inserire Data1 in formato gg/mm/aaaa"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } else if (document.inviadati.Data1.value.substring(0,2) > 31) { alert("Impossibile utilizzare un valore superiore a 31 per i giorni"); document.inviadati.Data1.select(); return false; } else if (document.inviadati.Data1.value.substring(3,5) > 12) { alert("Impossibile utilizzare un valore superiore a 12 per i mesi"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } else if (document.inviadati.Data1.value.substring(6,10) < 1850) { alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } if (document.inviadati.Data2.value.substring(2,3) != "/" || document.inviadati.Data2.value.substring(5,6) != "/" || isNaN(document.inviadati.Data2.value.substring(0,2)) || isNaN(document.inviadati.Data2.value.substring(3,5)) || isNaN(document.inviadati.Data2.value.substring(6,10))) { alert("Inserire Data2 in formato gg/mm/aaaa"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } else if (document.inviadati.Data2.value.substring(0,2) > 31) { alert("Impossibile utilizzare un valore superiore a 31 per i giorni"); document.inviadati.Data2.select(); return false; } else if (document.inviadati.Data2.value.substring(3,5) > 12) { alert("Impossibile utilizzare un valore superiore a 12 per i mesi"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } else if (document.inviadati.Data2.value.substring(6,10) < 1850) { alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } } function controllo(){ with(document.inviadati) { if(Data1.value=="") { alert("Errore: compilare il campo DATA 1"); Cognome.focus(); return false; } if(Data2.value=="") { alert("Errore: compilare il campo DATA 2"); Nome.focus(); return false; } } return true; } function funzione3() { if (! controlla_data()) { return false; } controllo(); return true; } </script> </head> <body> <table align ="center"> <form name="inviadati" onSubmit="return funzione3();" method="post" action = "Pagina2.php"> <tr> <td>Data 1</td> <td><input name="Data1" maxLength="30" size=8></td> </tr> <tr> <td>Data 2</td> <td><input name="Data2" maxLength="50" size=8></td> </tr> <tr> <td><input name="Invia" type="submit" value="Invia"></td> </tr> </form> </table> </body> </html>
![]()
Ho scritto che premetevo che sola la funzione 1 ritornava true o false ( cioè era quella di controllo ).
Nel tuo caso devi fare cosi visto che anche la seconda funziona ritorna qualcosa di utile.
codice:function funzione3() { if (! controlla_data()) { return false; } return controllo(); }
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
mmm si ok... ma anche così non mi passa alla pagina successiva...![]()
codice:<html> <head> <script language="javascript" type="text/javascript"> function controlla_data() { var Data1 = document.inviadati.Data1.value; var Data2 = document.inviadati.Data2.value; if (document.inviadati.Data1.value.substring(2,3) != "/" || document.inviadati.Data1.value.substring(5,6) != "/" || isNaN(document.inviadati.Data1.value.substring(0,2)) || isNaN(document.inviadati.Data1.value.substring(3,5)) || isNaN(document.inviadati.Data1.value.substring(6,10))) { alert("Inserire Data1 in formato gg/mm/aaaa"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } else if (document.inviadati.Data1.value.substring(0,2) > 31) { alert("Impossibile utilizzare un valore superiore a 31 per i giorni"); document.inviadati.Data1.select(); return false; } else if (document.inviadati.Data1.value.substring(3,5) > 12) { alert("Impossibile utilizzare un valore superiore a 12 per i mesi"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } else if (document.inviadati.Data1.value.substring(6,10) < 1850) { alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno"); document.inviadati.Data1.value = ""; document.inviadati.Data1.focus(); return false; } if (document.inviadati.Data2.value.substring(2,3) != "/" || document.inviadati.Data2.value.substring(5,6) != "/" || isNaN(document.inviadati.Data2.value.substring(0,2)) || isNaN(document.inviadati.Data2.value.substring(3,5)) || isNaN(document.inviadati.Data2.value.substring(6,10))) { alert("Inserire Data2 in formato gg/mm/aaaa"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } else if (document.inviadati.Data2.value.substring(0,2) > 31) { alert("Impossibile utilizzare un valore superiore a 31 per i giorni"); document.inviadati.Data2.select(); return false; } else if (document.inviadati.Data2.value.substring(3,5) > 12) { alert("Impossibile utilizzare un valore superiore a 12 per i mesi"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } else if (document.inviadati.Data2.value.substring(6,10) < 1850) { alert("Impossibile utilizzare un valore inferiore a 1900 per l'anno"); document.inviadati.Data2.value = ""; document.inviadati.Data2.focus(); return false; } } function controllo(){ with(document.inviadati) { if(Data1.value=="") { alert("Errore: compilare il campo DATA 1"); Cognome.focus(); return false; } if(Data2.value=="") { alert("Errore: compilare il campo DATA 2"); Nome.focus(); return false; } } return true; } function funzione3() { if (! controlla_data()) { return false; } return controllo(); } </script> </head> <body> <table align ="center"> <form name="inviadati" onSubmit="return funzione3();" method="post" action = "Pagina2.php"> <tr> <td>Data 1</td> <td><input name="Data1" maxLength="30" size=8></td> </tr> <tr> <td>Data 2</td> <td><input name="Data2" maxLength="50" size=8></td> </tr> <tr> <td><input name="Invia" type="submit" value="Invia"></td> </tr> </form> </table> </body> </html>
Prova a mettere un alert prima del return true nella seconda funzione.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr
Ho provato così ma non mi mostra l'alert...![]()
codice:function controllo(){ with(document.inviadati) { if(Data1.value=="") { alert("Errore: compilare il campo DATA 1"); Cognome.focus(); return false; } if(Data2.value=="") { alert("Errore: compilare il campo DATA 2"); Nome.focus(); return false; } } alert("Prova"); return true; }
Nella 1° funzione non c'è il return true.
Ridatemi i miei 1000 posts persi !!!!
Non serve a nulla ottimizzare qualcosa che non funziona.
Cerco il manuale dell'Olivetti LOGOS 80B - www.emmella.fr