我在一个使用 PHP+JQuery 的网站上工作。对于 CRUD 操作,我使用 JTable 和 validationEngine 进行表单验证。我正在为密码更改创建一个新的 JQuery 对话框,但是当我关闭并再次打开密码对话框时,validationEngine 会返回“True”。这是我完整的 javascript 代码:
<script type="text/javascript">
$(document).ready(function() {
$("#catalogoAlumnos").jtable({
title : 'Alumnos',
sorting : true,
actions : {
listAction : '../php/alumnosActions/selectAlumnos.php',
createAction : '../php/alumnosActions/agregarAlumno.php',
updateAction : '../php/alumnosActions/updateAlumno.php',
deleteAction : '../php/alumnosActions/deleteAlumno.php'
},
fields : {
ficha : {
title : '',
width : '1%',
sorting : false,
edit : false,
create : false,
display : function(Data) {
var $img = $('<button class="jtable-command-button jtable-view-command-button" src="../style/jtable/metro/list.png" title="Ver Más..." />');
$img.click(function() {
var $div = $("<div id='dialog' title='Información'>" + "<strong><label class='jtable-input-label'>Nombre Completo: </label></strong>" + Data.record.apellidosalumno + " " + Data.record.nombresalumno + "<br>" + "<strong><label class='jtable-input-label'>Sexo: </label></strong>" + Data.record.sexoalumno + "<br>" + "<strong><label class='jtable-input-label'>Dirección Completa: </label></strong>" + Data.record.direccionalumno + ", " + Data.record.ciudadalumno + ", " + Data.record.estadoalumno + ", " + Data.record.paisalumno + "<br>" + "<strong><label class='jtable-input-label'>Periodo de Registro: </label></strong>" + Data.record.periodoregistroalumno + " Del " + Data.record.anoregistroalumno + "<br>" + "<strong><label class='jtable-input-label'>Periodo Actual: </label></strong>" + Data.record.periodoactualalumno + " Del " + Data.record.anoactualalumno + "<br>" + "<strong><label class='jtable-input-label'>Semestre: </label></strong>" + Data.record.semestrealumno + "</div>");
$div.dialog({
modal : true
});
});
return $img;
}
},
num_control : {
key : true,
title : 'No. Control',
create : true,
edit : false,
inputClass : 'validate[required]'
},
password : {
list : false,
title : 'Contraseña',
type : 'password',
create : true,
edit : false,
inputClass : 'validate[required]'
},
apellidosalumno : {
title : 'Apellidos',
inputClass : 'validate[required]'
},
nombresalumno : {
title : 'Nombre',
inputClass : 'validate[required]'
},
sexoalumno : {
list : false,
title : 'Sexo',
create : true,
edit : true,
options : {
'M' : 'Masculino',
'F' : 'Femenino'
}
},
direccionalumno : {
title : 'Dirección',
list : false,
create : true,
edit : true,
inputClass : 'validate[required]'
},
ciudadalumno : {
title : 'Ciudad',
list : false,
create : true,
edit : true,
inputClass : 'validate[required]'
},
estadoalumno : {
title : 'Estado',
list : false,
create : true,
edit : true,
inputClass : 'validate[required]'
},
paisalumno : {
title : 'Pais',
list : false,
create : true,
edit : true,
inputClass : 'validate[required]'
},
carreraalumno : {
title : 'Carrera',
options : '../php/carrerasActions/selectCarrerasDropDown.php'
},
periodoregistroalumno : {
title : 'Periodo de Registro',
options : {
'1' : 'Ene-Abril',
'2' : 'Mayo-Agosto',
'3' : 'Sep-Dic'
},
list : false,
create : true,
edit : true
},
anoregistroalumno : {
title : 'Año de Registro',
list : false,
create : true,
edit : true,
inputClass : 'validate[required,custom[integer],min[1980]]'
},
periodoactualalumno : {
title : 'Periodo Actual',
options : {
'1' : 'Ene-Abril',
'2' : 'Mayo-Agosto',
'3' : 'Sep-Dic'
},
list : false,
create : true,
edit : true
},
anoactualalumno : {
title : 'Año del Periodo Actual',
list : false,
create : true,
edit : true,
inputClass : 'validate[required,custom[integer],min[1980]]'
},
semestrealumno : {
title : 'Semestre',
inputClass : 'validate[required,custom[integer]]'
},
emailalumno : {
title : 'E-mail',
list : false,
create : true,
edit : true,
inputClass : 'validate[required,custom[email]]'
},
cambiar_password : {
title : '',
width : '1%',
sorting : false,
edit : false,
create : false,
display : function(Data) {
var $img = $('<button class="jtable-command-button jtable-password-command-button" title="Cambiar Contraseña" />');
$img.click(function() {
var $div = $("<div id='dialog2' title='Cambiar Contraseña'>" + "<form id='cambia_pass' class='jtable-dialog-form' style='-moz-column-count:auto;-webkit-column-count:auto;column-count:auto;-moz-column-gap:auto;-webkit-column-gap:auto;column-gap:auto;'>" + "<div class='jtable-input-field-container'>" + "<div class='jtable-input-label'>Antigua Contraseña</div>" + "<div class='jtable-input jtable-password-input'><input type='password' class='validate[required]' name='antiguo_pass' id='antiguo_pass'/></div>" + "</div>" + "<div class='jtable-input-field-container'>" + "<div class='jtable-input-label'>Escriba Contraseña</div>" + "<div class='jtable-input jtable-password-input'><input type='password' class='validate[required]' name='nuevo_pass1' id='nuevo_pass1'/></div>" + "</div>" + "<div class='jtable-input-field-container'>" + "<div class='jtable-input-label'>Repita Contraseña</div>" + "<div class='jtable-input jtable-password-input'><input type='password' class='validate[required],equals[nuevo_pass1]' name='nuevo_pass2 id='nuevo_pass2'/></div>" + "</div>" + "</form>" + "</div>");
$div.dialog({
modal : true,
close : function(event, ui) {
$("#cambia_pass").validationEngine('hide');
$("#cambia_pass").validationEngine('detach');
},
buttons : {
"Actualizar" : function() {
if ($("#cambia_pass").validationEngine('validate')) {
}
},
"Cancelar" : function() {
$("#cambia_pass").validationEngine('hide');
$("#cambia_pass").validationEngine('detach');
$(this).dialog("close");
}
}
});
});
return $img;
}
}
},
formSubmitting : function(event, data) {
return data.form.validationEngine('validate');
},
formClosed : function(event, data) {
data.form.validationEngine('hide');
data.form.validationEngine('detach');
}
});
$("#catalogoAlumnos").jtable('load');
$('#cmdBuscar').click(function(e) {
e.preventDefault();
$('#catalogoAlumnos').jtable('load', {
no_control : $('#search_nocontrol').val(),
apellidos : $('#search_apellidos').val(),
nombres : $('#search_nombres').val(),
carrera : $('#search_carrera').val(),
semestre : $('#search_semestre').val(),
});
});
});
</script>