jquery函数和if块的问题
本文关键字:问题 if 函数 jquery | 更新日期: 2023-09-27 18:29:18
感谢您提前阅读我的问题,我有一个jquery函数,其中我使用一个标志变量($act)来运行if块,但它总是零(0)并且永远不会改变,因为if块不起作用,将不胜感激
http://jsfiddle.net/ricardojriosr/CWF6G/
function recibo_pago() {
var errores = [];
var $checkedRecords_facts = $('.checkedRecords:checked');
var $checkedRecords_pagos = $('.checkedRecords2:checked');
var $f_rec = $('#fecha_recibo');
var $n_rec = $('#numero_recibo');
var $act = 0;
var $CodClie = codigo_cliente;
if ($checkedRecords_facts.length < 1) {
errores.push('Debe Seleccionar al menos una factura');
}
if ($checkedRecords_pagos.length < 1) {
errores.push('Debe Seleccionar al menos un Pago');
}
if ($f_rec.val() == '') {
errores.push('Debe Ingresar la fecha del Recibo de Pago');
}
if (errores.length == 0) {
$arreglo_facts = [];
$arreglo_pagos = [];
$checkedRecords_facts.each(function (index) {
$arreglo_facts.push($(this).text());
});
$checkedRecords_pagos.each(function (index) {
$arreglo_pagos.push($(this).text());
});
var $jsonString_facts = JSON.stringify($arreglo_facts);
var $jsonString_pagos = JSON.stringify($arreglo_pagos);
if ($n_rec.val() == '') {
jConfirm('¿Estas seguro que desea guardar el Recibo de Pago sin Número de Control?', 'Confirmar Guardar sin Número de Control', function ($r) {
if ($r) {
//it changes value here to 1, i used console.log to see it
$act = 1;
} else {
$n_rec.focus();
}
});
} else {
$act = 1;
}
//Here the $act value is zero (0) and does not work the code inside the if block, help please
if ($act == 1) {
console.log($act);
var datos = { facts: $jsonString_facts, pags: $jsonString_pagos, Fecha: $f_rec.val(), NoRecibo: $n_rec.val() };
$.ajax({
url: direccion + 'PROG_4394/GuardarReciboPago',
dataType: "json",
data: datos,
success: function (data) {
jAlert(data.mensaje, data.titulo);
if (data.success) {
jAlert("ENVIO TRUE", "PRUEBA");
}
}
})
}
} else {
var DivErrores = $('#errores');
Errores = errores;
if (Errores.length > 0) {
DivErrores.html('<h1>Errores</h1>')
.append('<p>Verifique los siguientes errores antes de continuar</p>')
.append('<ul>');
Errores.forEach(function (error) {
DivErrores.append('<li><p style="display: inline;">' + error + '</p>' + '</li>');
});
DivErrores.append('</ul><br/>');
} else {
DivErrores.empty();
}
}
}
感谢@HanleEscaño的指导
它是一个确认模式异步,所以我基本上将它分为两个功能来解决这个问题
function llamada_recibo_pago($jsonString_facts, $jsonString_pagos, $f_rec, $n_rec) {
var datos = { facts: $jsonString_facts, pags: $jsonString_pagos, Fecha: $f_rec, NoRecibo: $n_rec };
$.ajax({
url: direccion + 'PROG_4394/GuardarReciboPago',
dataType: "json",
data: datos,
success: function (data) {
jAlert(data.mensaje, data.titulo);
if (data.success) {
jAlert("ENVIO TRUE", "PRUEBA");
}
}
})
}
在像这样的asyn函数中称为llamadas
//alert($act);
if ($n_rec.val() == '') {
jConfirm('¿Estas seguro que desea guardar el Recibo de Pago sin Número de Control?', 'Confirmar Guardar sin Número de Control', function ($r) {
if ($r) {
$act = 1;
llamada_recibo_pago($jsonString_facts, $jsonString_pagos, $f_rec.val(), $n_rec.val());
} else {
$n_rec.focus();
}
});
} else {
$act = 1;
}
//Here the $act value is zero (0) and does not work the code inside the if block, help please
//alert($act);
if ($act == 1) {
llamada_recibo_pago($jsonString_facts, $jsonString_pagos, $f_rec.val(), $n_rec.val());
}