Jquery对话框验证
我的问题是,当我关闭一个ajax加载的JqueryUI对话框,然后打开另一个对话框时,我应用于该对话框的所有JavaScript都无法工作 我注意到的几件事是,当我关闭它时,html只是变得隐藏起来,实际上并没有被删除。调用$dialog.dialog(“销毁”);没用。删除隐藏的html也不起作用。我不确定如何销毁验证对象(文档没有对此做任何说明),或者在对话框关闭时这样做是否有帮助。我基本上只想在关闭对话框时回到初始页面加载阶段,因此打开另一个对话框将重新创建验证对象等等 我对TinyMCE等其他小部件有这个问题,一旦我关闭第一个对话框并打开其他小部件,它就不会再次初始化 下面是一个简化版本的代码,用于一个这样的对话框-Jquery对话框验证,jquery,ajax,validation,jquery-ui,dialog,Jquery,Ajax,Validation,Jquery Ui,Dialog,我的问题是,当我关闭一个ajax加载的JqueryUI对话框,然后打开另一个对话框时,我应用于该对话框的所有JavaScript都无法工作 我注意到的几件事是,当我关闭它时,html只是变得隐藏起来,实际上并没有被删除。调用$dialog.dialog(“销毁”);没用。删除隐藏的html也不起作用。我不确定如何销毁验证对象(文档没有对此做任何说明),或者在对话框关闭时这样做是否有帮助。我基本上只想在关闭对话框时回到初始页面加载阶段,因此打开另一个对话框将重新创建验证对象等等 我对TinyMCE
var create_contact_dialog = function () {
var $contactDialog = $('<div></div>')
.dialog({
autoOpen: false,
dialogClass: "contact_form_dialog",
});
$contactDialog.dialog('open');
return $contactDialog;
};
$('#open_contact_form').live('click', function () {
var $contactDialog = create_contact_dialog();
$contactDialog.load('/contact_form', function () {
contact_form_validator = $("#contact_form").validate({
rules: {
name: {
required: true
},
}
});
});
});
var create\u contact\u dialog=函数(){
变量$contactDialog=$(“”)
.对话({
自动打开:错误,
dialogClass:“联系形式对话”,
});
$contactDialog.dialog('open');
返回$contactDialog;
};
$('open#contact_form').live('click',function(){
var$contactDialog=create_contact_dialog();
$contactDialog.load('/contact_form',函数(){
联系人表单验证程序=$(“#联系人表单”)。验证({
规则:{
姓名:{
必填项:true
},
}
});
});
});
任何指点都很感激 一旦对话框关闭,您就需要删除它的DOM,因为每次加载的表单都有相同的ID(这会导致后续加载仍然使用该ID引用第一个DOM)。您可以通过提供删除对话框内容的
close
函数回调来执行此操作:
var create_contact_dialog = function () {
var $contactDialog = $('<div></div>')
.dialog({
autoOpen: false,
dialogClass: "contact_form_dialog",
close: function() {
$contactDialog.remove();
}
});
$contactDialog.dialog('open');
return $contactDialog;
};
var create\u contact\u dialog=函数(){
变量$contactDialog=$(“”)
.对话({
自动打开:错误,
dialogClass:“联系形式对话”,
关闭:函数(){
$contactDialog.remove();
}
});
$contactDialog.dialog('open');
返回$contactDialog;
};
我在这里提供了一个示例,如果删除关闭功能,您将看到警报不起作用
一旦对话框关闭,您需要删除它的DOM,因为每次加载的表单都有相同的确切ID(这会导致后续加载仍然引用具有该ID的第一个DOM)。您可以通过提供删除对话框内容的
close
函数回调来执行此操作:
var create_contact_dialog = function () {
var $contactDialog = $('<div></div>')
.dialog({
autoOpen: false,
dialogClass: "contact_form_dialog",
close: function() {
$contactDialog.remove();
}
});
$contactDialog.dialog('open');
return $contactDialog;
};
var create\u contact\u dialog=函数(){
变量$contactDialog=$(“”)
.对话({
自动打开:错误,
dialogClass:“联系形式对话”,
关闭:函数(){
$contactDialog.remove();
}
});
$contactDialog.dialog('open');
返回$contactDialog;
};
我在这里提供了一个示例,如果删除关闭功能,您将看到警报不起作用