- Home
- Categorie
- Coding e Sistemistica
- Javascript & Framework
- [JAVASCRIPT] Problema invio form
-
[JAVASCRIPT] Problema invio form
Salve a tutti mi sono appena registrato e spero potrete aiutarmi a risolvere questo problema probabilmente semplice per voi.
Il mio intento è quello di eseguire una funzione javascript prima dell'invio di un modulo ma alla premuta del tasto stesso che dovrebbe inviarlo, così nell'action ho messo javascript:mia_funzione() e in coda a questa le istruzioni:document.mio_form.action = ""; document.mio_form.submit();
Perché il form sia inviato però è necessario cliccare il bottone due volte. Sapete dirmi come mai o come poter risolvere?
Grazie mille per l'aiuto.
-
Dovreti postare il codice html della tua pagina.
Con quelle sole righe è quasi impossibile dare una risposta.
-
Ciao Giangians,
prova a "catturare" l'evento onsubmit del form e non l'onclick del button.
-
Ti ringrazio per il suggerimento, purtroppo però non posso applicarlo al mio caso perché io ho bisogno di eseguire un controllo sui dati inseriti nel form e di inviarlo solo nel caso in cui il controllo sia superato. Con l'onSubmit, superato o no i dati sarebbero già stati inviati.
Ecco il codice:<html> <head> <title>Nuova dissertazione</title> <link rel="stylesheet" href="Css/default.css" /> <script type="text/javascript" language="javascript"> function check_form() { document.new_diss.action = ""; document.new_diss.submit(); } </script> </head> <body> <center> <h2 style="text-decoration:overline">Nuova dissertazione</h2> <div id="d"> <form name="new_diss" id="new_diss" method="post" action="javascript:check_form()"> <table style="border:dashed 1px #333333; width:300px"> <thead> <tr> <td>Titolo:</td> <td><input id="titolo" name="titolo" type="text" /></td> </tr> <tr> <td>Tesi:</td> <td><input id="tesi" name="tesi" type="text" /></td> </tr> </thead> <tbody id="tbl"> </tbody> <tfoot> <tr> <td colspan="2" align="center"> <input class="new_obj" type="button" onClick="add_obj()" value="Nuovo oggetto" /> </td> </tr> <tr> <td colspan="2"> <select name="obj_type" style="width:100%"> <option value="arg">Argomento</option> <option value="argsec">Argomento secondario</option> <option value="comm">Commento</option> </select> </td> </tr> <tr> <td style="border-top:dashed 1px" colspan="2" align="right"> <input name="send" type="submit" value="Invia" /> </td> </tr> <tr> <td style="border-top: dashed 1px" colspan="2" align="center"> </td> </tr> </tfoot> </table> </form> </div> </center> </body> </html>
Se può esser causa del problema, faccio notare che la pagina si trova in una finestra aperta con window.open. Inoltre mi sono appena accorto che con FireFox funziona, è Google Chrome a dare problemi, mentre Explorer sembra addirittura rifiutarsi di aprire la pagina, per la quale ho usato questo collegamento:
<a href="" onClick="javascript:window.open('new_diss.php','Nuova dissertazione','width=550,height=350')">Crea nuova dissertazione</a>
Mi sfugge qualcosa?
-
Ho però provato a fare come tu avevi inteso che avessi fatto, ossia ho tolto la chiamata della funzione dall'action e l'ho messa nell'onClick. Così funziona, grazie per l'ispirazione
Ma prima cosa non andava? E cosa potrei fare per IE? Ancora grazie mille.
-
Se inserisci una funzione javascript nell'attributo onsubmit del form viene eseguita prima che i dati vengano inviati. L'importante è ritornare false nel caso non si vuole che il form invii i dati.