Ciao a tutti, in una dialog, ho 2 form:
- la prima una form di ricerca, con un solo input, che mi stampa dei risultati;
- con la seconda form, dovrei salvare i dati su database e chiudere la dialog;
la cosa strana che mi succede è questa:
- per cercare, posso scrivere nell'input e cliccare invio, e la ricerca parte correttamente;
- per inviare la seconda form invece, devo premere per forza 2 volte il submit;
che cosa sto sbagliando?
questo il mio codice:
codice:<form id="cerca" name="cerca" type="post"> <input type="text" id="nome" name="nome" /> <button type="submit" id="buttonCerca" class="btn btn-success"><span class="glyphicon glyphicon-search"></span> CERCA</button> </form> <!-- qui stampo i risultati della ricerca... e scelgo un record --> <div id="dataTables"></div> <form id="salva" name="salva" type="post"> <input type="text" id="idSceltoInPrecedenza" name="idSceltoInPrecedenza" /> <input type="text" id="note" name="note" /> <button type="submit" id="buttonSalva" class="btn btn-success"><span class="glyphicon glyphicon-save"></span> SALVA</button> </form>
qui il javascript
codice:$(document).ready(function() { $(document).on("submit","#cerca",function (){ event.preventDefault(); cerca(); }); function cerca() { var nomeCercato = $("#nome").val(); var n = nomeCercato.length; if ( n < 3 ) { alert("Utilizza almeno 3 caratteri"); } else { $.get("risultatiRicerca.php?"+nomeCercato, function(data) { $("#dataTables").html(data); }); } } $(document).on("submit","#salva",function (){ event.preventDefault(); salva(); }); function salva() { $('#salva').submit(function () { $.ajax({ type: "POST", url: "salva.php", data: $("#salva").serialize(), // serializes the form's elements. success: function(data) { $('#salva')[0].reset(); $('#dataTables').DataTable().ajax.reload(); $("#dialog").dialog( "close" ); }, error: function (jXHR, textStatus, errorThrown) { alert(errorThrown); } }); }); } });

Rispondi quotando