2011-03-02 79 views
1
<a href=".login_form" class="the_form">click to Contact</a> 


$(".the_form").fancybox({ 
     'scrolling'  : 'no', 
     'overlayOpacity': 0.1, 
     'showCloseButton' : false, 
     'onClosed'  : function() { 
      $("#login_error").hide(); 
     } 
    }); 






$(".login_form").bind("submit", function() { 

    if ($(this).find(".name").val().length < 1 || $(this).find(".email").val().length < 1 || $(this).find(".msg").val().length < 1) { 
     $(this).find(".login_error").show(); 
     $.fancybox.resize(); 
     return false; 
    } 
}); 

我有一个表单循环并创建了它的许多实例。我想要做的就是在该链接上单击打开该窗体的特定实例。我知道我可以通过为每个表单创建独特的id来实现这一点,但是我想知道是否有更简单的方法。这段代码在理论上看起来不错,但fancybox不会只使用“.login_form”作为特定实例的“#login_form”。fancybox可以打开表单类的多个实例

回答

0

如果您显示一些额外的标记,我可能会提供帮助。

但是,也许你可以遍历每个项目,并绑定到这种方式花哨的盒子?这样每次迭代都可以在你的花式框声明中引用表单方向?在jsfiddle

$(".the_form").each(function(){ 

    $(this).fancybox({ 
     'content': $(this).find("someChildOfTheForm"), 
     'scrolling'  : 'no', 
     'overlayOpacity': 0.1, 
     'showCloseButton' : false, 
     'onClosed'  : function() { 
      $(this).find(".login_error").hide(); 
     } 
    }); 

}); 

实例来描述我所谈论...

0

另外,如果我正确地给你,你可以使用多个选择这样

$('#id1, #id2, #id3').fancybox({ 
    'scrolling'  : 'no', 
    'overlayOpacity': 0.1, 
    'showCloseButton' : false, 
    'onClosed'  : function() { 
     $(this).find(".login_error").hide(); 
    } 
}); 
相关问题