jquery验证器第二个addmethod未触发

uttx8gqw  于 2023-11-17  发布在  jQuery
关注(0)|答案(1)|浏览(113)

这发生在我身上,我添加了第二个方法到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>

ovfsdjhp

ovfsdjhp1#

我希望这能帮助到一些人。最后我意识到,在引导模式表单下面的html输入不能被jquery验证器检测到。我把模式表单移到下面,现在可以工作了!

<%-- 
                         MEDIOS PAGO
            --%>
            <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" id="impEfectivo" 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>

            <!--MODAL DE LOS CHEQUES DE TERCEROS A DAR DE BAJA-->

            <div class="modal fade" id="formChequeT" tabindex="-1" role="dialog" aria-labelledby="formChequeTLabel"  aria-hidden="true">
                <div class="modal-dialog modal-dialog-centered modal-lg" role="document">
                    <div class="modal-content">
                        <div class="modal-header">
                            <h5 class="modal-title" id="formChequeTLabel">Cheques en Cartera</h5>              
                        </div>

                        <div class="modal-body">
                            <form id="formModal-ChequesTercero">
                                <table id="tChequesCartera" class="table table-bordered table-striped table-sm">
                                    <thead>
                                        <tr>
                                            <th></th>
                                            <th>Banco</th>
                                            <th>Fecha</th>
                                            <th>Cobro</th>
                                            <th>Numero</th>
                                            <th>Importe</th>
                                            <th>A dar Baja</th>
                                        </tr>
                                    </thead>
                                    <tbody id="tChequesCartera_data">                     
                                    </tbody>
                                    <tfoot>
                                        <tr>
                                            <th></th>
                                            <th></th>
                                            <th></th>
                                            <th></th>                                
                                            <th></th>
                                            <th></th>
                                            <th></th>                                
                                        </tr>
                                    </tfoot>
                                </table>

                            </form>
                        </div>
                        <div class="modal-footer">
                            <button type="button" class="btn btn-warning" data-dismiss="modal">Salir</button>
                        </div>
                    </div>
                </div>
            </div>

字符串

相关问题