2011-06-03 100 views
6

我目前在我的网页上的一个灯箱框架中有一个窗体。当用户提交包含无效数据的表单时,div窗口顶部会出现一个表单错误列表。问题是:我需要某种jQuery验证回调来在出现错误div后调整灯箱大小。据我所知,没有办法与jQuery的灯箱做到这一点。jQuery验证回调函数

+0

你的意思一个lightbox iframe?您是使用插件还是自己的脚本验证表单? – Jon 2011-06-03 08:29:24

回答

17

您提供无效的回调函数,你可以找到documented here,像这样

$(".selector").validate({ 
    invalidHandler: function(form, validator) { 
     var errors = validator.numberOfInvalids(); 
     if (errors) { 
      //resize code goes here 
     } 
    } 
}) 
+0

我想我没有想到在invalidHandler函数中处理所有的错误显示和放置。谢谢! – 2011-06-10 17:14:04

+0

欢迎您的帮助 – mcgrailm 2011-06-10 17:16:12

+0

在'.validate'已被初始化/调用后,您如何附加此处理程序? – Maslow 2013-04-27 16:45:58

2

或者,你可以使用errorPlacement回调函数,以行动验证失败的特定元素上。作为一个例子,下面的代码使用errorPlacement回调类中的每个无效的表单元素的父div标签的设置为“错误”,然后删除“错误”类一旦元素通过验证:

form.validate({ 
     rules: { 
      Name: { 
       required: true 
      }, 
      Email: { 
       required: true 
       , regex: "^[0-9a-zA-Z.+_\-][email protected]{1}[0-9a-zA-Z.+_\-]+\\.+[a-zA-Z]{2,4}$" 
      } 
     }, 
     messages: { 
      Name: { 
       required: "Please give us your name" 
      }, 
      Email: { 
       regex: "Please enter a valid email address" 
      } 
     }, 

     errorPlacement: function(error, element) { 
      element.parent().addClass("error"); 
     }, 

     success: function(element) { 
      $("#" + element.attr("for")).parent().removeClass("error"); 
     } 
    });