fancybox的jQuery validationengine失败

fancybox的jQuery validationengine失败,jquery,fancybox,jquery-validation-engine,Jquery,Fancybox,Jquery Validation Engine,我有一个表单,其中有两个不可见的DIV,单击一个按钮就会显示出来,弹出fancybox窗口。我有jQueryValidatorEngine插件,它完成了所有的验证工作。问题在于,验证引擎可以很好地用于普通字段,但对于fancybox窗口中的隐藏字段,一旦它们可见,验证引擎就无法正常工作。我怀疑这是因为fancybox在运行时将它们置于的范围之外,这导致验证引擎失败,因为它无法处理表单标记之外的元素 $(document).ready(function() { $("#category")

我有一个表单,其中有两个不可见的DIV,单击一个按钮就会显示出来,弹出fancybox窗口。我有jQueryValidatorEngine插件,它完成了所有的验证工作。问题在于,验证引擎可以很好地用于普通字段,但对于fancybox窗口中的隐藏字段,一旦它们可见,验证引擎就无法正常工作。我怀疑这是因为fancybox在运行时将它们置于
的范围之外,这导致验证引擎失败,因为它无法处理表单标记之外的元素

$(document).ready(function() {  
  $("#category").validationEngine('validate');
  $('#wrapper #addCat').live('click', function() {
  $('<a href="#addCategoryDiv"/>').fancybox({
    'autoDimensions' : false,
    'hideOnContentClick' : false,
    'height' : 450,
    'width' : 500,
    'scrolling' : 'no'
    }).click();
  });
  $('#wrapper #editCat').live('click', function() {
    $('<a href="#editCategory"/>').fancybox({
      'autoDimensions' : false,
      'hideOnContentClick' : false,
      'height' : 450,
      'width' : 500,
      'scrolling' : 'no'
      }).click();
  });
});
$(文档).ready(函数(){
$(“#类别”).validationEngine(“validate”);
$('#wrapper#addCat').live('click',function()){
$('').fancybox({
“自动标注”:false,
“hideOnContentClick”:false,
‘高度’:450,
“宽度”:500,
“滚动”:“否”
})。单击();
});
$('#wrapper#editCat').live('click',function(){
$('').fancybox({
“自动标注”:false,
“hideOnContentClick”:false,
‘高度’:450,
“宽度”:500,
“滚动”:“否”
})。单击();
});
});

有人能帮我修一下吗?我可以在Firebug中看到,fancybox将
部分代码置于
标记之外。

您需要将validationengine初始化代码放入fancybox
onComplete方法中:

$('<a href="#editCategory"/>').fancybox({
                'autoDimensions'        : false,    
                'hideOnContentClick'    : false,
                'height'                : 450,
                'width'                 : 500,
                'scrolling'             : 'no'
                'onComplete'            : function(){
                                              $("#category").validationEngine('validate');   
                                          }
            }).click();
$('').fancybox({
“自动标注”:false,
“hideOnContentClick”:false,
‘高度’:450,
“宽度”:500,
“滚动”:“否”
“onComplete”:函数(){
$(“#类别”).validationEngine(“validate”);
}
})。单击();

原因是fancybox代码在运行时超出了标记的范围,而jquery validationengine插件只能应用于标记中的代码。我很快会编辑答案,但是手动调用输入上的验证如何?你有机会看一下吗?我试过了,但似乎没什么效果:(或者我问的问题真的很难回答,请通读一遍,试着回答其中的一些问题,而不是编辑英文文本,对不起,这没用。