这发生在我身上,我添加了第二个方法到jquery验证器,最后一个没有被触发,我不明白是什么错了?也许有人可以帮助我.这里的代码,“cajaInsert”是表单名称:
$(document).on('click', '#btnConfirma', function (e) {
e.preventDefault();
$("#cajaInsert").validate();
if ($("#cajaInsert").valid()) {
$.ajax({
type: "GET",
url: "Caja?action=preInsert&modo=02&idsesion=${idsesion}",
dataType: 'json',
data: $("form").serialize(),
success: function (response) {
if (response.datos[0].warning === "true") {
Swal.fire({title: '! Atencion !', text: response.datos[0].mensaje, icon: "warning"}).then(
function (isConfirm) {
continuaInsert();
});
} else {
continuaInsert();
}
},
error: function (xhr, exception) {
errorCallback(xhr, exception);
}
});
}
});
字符串
jquery validator定义:
$(document).ready(function () {
$.validator.addMethod('ValidarMedios', function (value, element, param) {
let suma = 00;
let total = parseFloat($('#importe').val());
suma += parseFloat($('#impEfectivo').val());
suma += parseFloat($('#impChequet').val());
if (suma !== total) {
return false;
} else {
return true;
}
}, 'La Suma de (Efectivo+Cheques) NO Coincide con el Total del Comprobante !');
$.validator.addMethod('ValidarImporte', function (value) {
if (parseFloat(value) > 0) {
return true;
} else {
return false;
}
}, 'El Total debe ser mayor a Cero !');
$("#cajaInsert").validate({
rules: {
fecha: {
required: true
},
cboOpera: {
required: true
},
concepto: {
required: true
},
importe: {
required: true,
ValidarImporte: true
},
impEfectivo:{
ValidarMedios: true
}
},
messages: {
fecha: {
required: "Por favor indique la fecha del comprobante"
},
cboOpera: {
required: "Indique si se Trata de Ingreso o Egreso"
},
concepto: {
required: "El Concepto NO Puede Estar Vacio !"
},
importe: {
required: "El Total NO puede ser Cero !!!"
}
}
});
型
方法“ValidarMedios”从不触发,但“ValidarImporte”总是函数!.
<fieldset class="border p-2">
<legend class="w-auto" style="color:red; font-style:italic;">Medios</legend>
<div class="form-group row mt-1 mb-0">
<label for="impEfectivo" id="lblefectivo" class="col-sm-2">Efectivo</label>
<div class="col-sm-2">
<input type="number" class="form-control w-50 Numero" name="impEfectivo" value="0">
</div>
</div>
<div class="form-group row mt-1 mb-0">
<label for="impChequet" id="lblchequet" class="col-sm-2">Cheques Cartera</label>
<div class="col-sm-2">
<input type="number" class="form-control w-50 Numero" id="impChequet" name="impChequet" value="0">
</div>
<button type="button" id="botChequesT" name="botChequesT" class="btn btn-success" data-toggle="modal"
data-target="#formChequeT">Cheques en Cartera
</button>
</div>
</fieldset>
型
1条答案
按热度按时间ovfsdjhp1#
我希望这能帮助到一些人。最后我意识到,在引导模式表单下面的html输入不能被jquery验证器检测到。我把模式表单移到下面,现在可以工作了!
字符串