jQuery解除绑定会使更新面板崩溃

| 我有一个带有更新面板的jQuery对话框。为了使事情复杂一些,我使用jQuery validate。 为了禁用验证,我在
beforeClose
中使用jQuery unbind函数。问题是取消绑定“崩溃”更新面板。 还有其他方法可以在不“破坏”更新面板的情况下禁用验证吗? 编辑:单击对话框的按钮时,取消绑定还会启动回发。该页面完全使用ajax完成。我不想在页面中发回邮件。
function mostrarVentanaVehiculo() {
    $(document).ready(function () {
        var $dialogContentVehiculo = $(\"#divDatosFacturaVehiculo\");
        var bDatosModificados = false;
        var bGuardar = false;
        var dlg = $dialogContentVehiculo.dialog({
            modal: true,
            title: \"Datos de vehículo\",
            width: \'780px\',
            draggable: false,
            resizable: false,
            autoOpen: false,
            open: function () {
                $(\'#divDatosFacturaVehiculo input[type=text], #divDatosFacturaVehiculo input[type=checkbox],#divDatosFacturaVehiculo select\').each(function (i) {
                    $(this).data(\'valor_inicial\', $(this).val());
                });

               $(\"#phContenidos_tbFechaMatriculaOrigen, #phContenidos_tbFechaMatriculaEspana, #phContenidos_tbFechaFab, #phContenidos_tbFechaCaducidad\").mask(\"99/99/99?99\");
                $(\"#phContenidos_tbDatosFacturaVehiculoTecnicosMMA, #phContenidos_tbDatosFacturaVehiculoTecnicosCilindrada,  #phContenidos_tbDatosFacturaVehiculoTecnicosPotenciaReal\").mask(\"9?999,99\");
                $(\"#phContenidos_tbddlDatosFacturaVehiculoTecnicosAsientos, #phContenidos_tbDatosFacturaVehiculoTecnicosNeumaticos\").mask(\"99?99\");
            },
            close: function () {
                $dialogContentVehiculo.dialog(\"destroy\");
                $dialogContentVehiculo.hide();
                $(\"#phContenidos_hlVehiculoDialogo\").focus();
            },
            buttons: {
                \"Aceptar\": function () {
                    $(\'#divDatosFacturaVehiculo input[type=text], #divDatosFacturaVehiculo input[type=checkbox],#divDatosFacturaVehiculo select\').each(function (i) {
                        if ($(this).val() !== $(this).data(\'valor_inicial\')) {
                            bDatosModificados = true;
                        }
                    });
                    if (bDatosModificados) {
                        jQuery.validator.messages.required = \"\";
                        jQuery.validator.messages.number = \"\";
                        jQuery.validator.messages.minlength = \"\";
                        $(\"#mainForm\").validate({
                            ignore: \":disabled\",
                            invalidHandler: function (e, validator) {
                                var errores = validator.numberOfInvalids();
                                if (errores > 0) {
                                    $(\"divDatosFacturaVehiculo.error\").show();
                                } else {
                                    $(\"divDatosFacturaVehiculo.error\").hide();
                                }
                            },
                            rules: {
                                ctl00$phContenidos$tbMatricula: {
                                    required: true,
                                    minlength: 4
                                },
                                ctl00$phContenidos$tbBastidorNumero: {
                                    required: {
                                        depends: function (element) {
                                            return !$(\"#phContenidos_cbBastidor\").attr(\"checked\");
                                        }
                                    }
                                },
                                ctl00$phContenidos$tbFechaMatriculaOrigen: {
                                    required: true
                                },
                                ctl00$phContenidos$ddlDatosFacturaVehiculoTecnicosModelo: {
                                    required: true
                                },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosClasificacion: {
                                    required: true,
                                    minlength: 4
                                },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosMMA: {
                                    required: true,
                                    number: true
                                },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosCilindrada: { number: true },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosTara: { number: true },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosPotenciaReal: { number: true },
                                ctl00$phContenidos$tbDatosFacturaOtrosDatosEjes: { number: true },
                                ctl00$phContenidos$tbddlDatosFacturaVehiculoTecnicosAsientos: { number: true },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosNeumaticos: { number: true },
                                ctl00$phContenidos$tbatosFacturaVehiculoTecnicosMedNeumaticos: { number: true },
                                ctl00$phContenidos$tbDatosFacturaVehiculoNKilometros: { number: true },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosClasificacion: {
                                    required: true,
                                    minlength: 4
                                },
                                ctl00$phContenidos$tbDatosFacturaVehiculoTecnicosCategoria: {
                                    required: true
                                }
                            },
                            submitHandler: function (form) {
                                bGuardar = true;
                                $dialogContentVehiculo.dialog(\"close\");
                            }
                        });
                    } else {
                        bGuardar = false;
                        $dialogContentVehiculo.dialog(\"close\");
                    }
                },
                beforeClose: function (event, ui) {
                if (bGuardar) {
                    var bOK = checkVehiculoAdicionales();
                    if (bOK) {
                        actualizarVehiculo();
                        $(\"#phContenidos_btnActualizarTotalVehiculo\").click();
                    } else {
                        return false;
                    }
                }
                $(\"#mainForm\").unbind(\'submit\');
            }
        });
        dlg.parent().appendTo(jQuery(\"form:first\"));
        dlg.dialog(\'open\');
    });}
    
已邀请:
        这里解释了jQuery名称间隔事件... 而且你可以做这样的事情
$(\"#mainForm\").bind(\"submit.something\", function(e){/*...*/});
而当您解除绑定时,您可以做
$(\"#mainForm\").unbind(\"submit.something\");
    

要回复问题请先登录注册