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);
}
});
});
}
});