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\');
});}
没有找到相关结果
已邀请:
1 个回复
吐兄
而当您解除绑定时,您可以做