Hola,
Estoy probando este ejemplo, que he visto en Internet para editar filas de una tabla:
http://mrbool.com/how-to-add-edit-and-delete-rows-of-a-html-table-with-jquery/26721
Lo he adaptado en base a mis necesidades, el problema es que tanto cuando doy a nuevo o a modificar, quiero validar que los campos no estén vacíos. En nuevo, al pulsar guardar, me funciona OK, pero al editar y dar a guardar, el alert de validación de campos vacío, se ejecuta varias veces y solo quiero que el alert se lance una vez.
Os pongo el código de la función Salvar, que es donde tengo el quid de la cuestión:
Salvar : function()
{
SI_PROD_ER_NOMB.salvar = false;
var par = $(this).parent().parent(); //tr
par.css("background-color","#fff");
var tdBotoes = par.children("td:nth-child(1)");
var tdField2 = par.children("td:nth-child(2)");
var tdField3 = par.children("td:nth-child(3)");
var tdField4 = par.children("td:nth-child(4)");
var tdField5 = par.children("td:nth-child(5)");
var tdField6 = par.children("td:nth-child(6)");
var tdField7 = par.children("td:nth-child(7)");
var tdField8 = par.children("td:nth-child(8)");
var tdField9 = par.children("td:nth-child(9)");
var tdField10 = par.children("td:nth-child(10)");
var tdField11 = par.children("td:nth-child(11)");
var tdField12 = par.children("td:nth-child(12)");
var tdField13 = par.children("td:nth-child(13)");
var tdField14 = par.children("td:nth-child(14)");
if (SI_PROD_ER_NOMB.op=="add")
{
if (tdField3.children("input[type=text]").val()==''
|| tdField4.children("input[type=text]").val()==''
|| tdField6.children("input[type=text]").val()==''
|| tdField7.children("input[type=text]").val()==''
|| tdField9.children("input[type=text]").val()==''
|| tdField10.children("input[type=text]").val()==''
|| tdField13.children("input[type=text]").val()=='') {
alert("All mandatory fields are not completed");
par.css("background-color","#eee");
SI_PROD_ER_NOMB.salvar = false;
}
else
{
SI_PROD_ER_NOMB.salvar = true;
}
}
else
{
if (SI_PROD_ER_NOMB.op=="edit")
{
if (tdField7.children("input[type=text]").eq(0).val()==''
|| tdField9.children("input[type=text]").eq(0).val()==''
|| tdField10.children("input[type=text]").eq(0).val()==''
|| tdField13.children("input[type=text]").eq(0).val()==''
|| tdField14.children("input[type=text]").eq(0).val()=='') {
alert("All mandatory fields are not completed"); // es este alert el que repite varias veces
par.css("background-color","#eee");
SI_PROD_ER_NOMB.salvar = false;
}
else
{
SI_PROD_ER_NOMB.salvar = true;
}
}
else
{
alert("La operación no está disponible");
}
}
if (SI_PROD_ER_NOMB.salvar) {
tdBotoes.html("<img src='img/ico_edit.png' class='btnEditar center-block'/>");
tdField2.html(tdField2.children("input[type=text]").val());
tdField3.html(tdField3.children("input[type=text]").val());
tdField4.html(tdField4.children("input[type=text]").val());
tdField5.html(tdField5.children("input[type=text]").val());
tdField6.html(tdField6.children("input[type=text]").val());
tdField7.html(tdField7.children("input[type=text]").val());
tdField8.html(tdField8.children("input[type=text]").val());
tdField9.html(tdField9.children("input[type=text]").val());
tdField10.html(tdField10.children("input[type=text]").val());
tdField11.html(tdField11.children("input[type=text]").val());
tdField12.html(tdField12.children("input[type=text]").val());
tdField13.html(tdField13.children("input[type=text]").val());
tdField14.html(tdField14.children("input[type=text]").val());
$("#btnAdicionar").show();
}
$("#SI_PROD_ER_NOMB tbody").on('click', '.btnEditar', SI_PROD_ER_NOMB.Editar);
$(".btnExcluir").bind("click", SI_PROD_ER_NOMB.Excluir);
$(".btnCancel").bind("click", SI_PROD_ER_NOMB.Cancel);
},
Saludos.