【问题标题】:jQuery validate plug in - validating hidden elements only when visiblejQuery 验证插件 - 仅在可见时验证隐藏元素
【发布时间】:2011-03-30 04:36:37
【问题描述】:

我有一个表单,其中包含“您的帐单地址是否与您的送货地址相同”字段。如果用户单击单选按钮“否”,则会显示隐藏的 ul#billingAddress。如果 ul#billingAddress 可见,即如果 ul 具有 display:block,则包含在 ul#billingAddress 中的字段是必需的。

如何为 jquery validate.js 编写一个自定义 addMethod,仅在字段可见时才需要这些方法?这就是我所拥有的不起作用。

$.validator.addMethod ("BillingSameAsShipping", function(value, element) {
   var billingFields = ['billingAddress1','billingAddress2','billingCity','billingState','bilingZip']
   if ($("#billingAddress").is('visible') && billingFields.val('') {
       return false;
   } else 
       return true;
 }, "Please fill in the required billing information" );

这,显然是被劫持了。我需要让它适用于 var 中的每一个。

谢谢!

【问题讨论】:

  • 您是否尝试过让它们不仅不可见,而且还设置为禁用?这只是一个猜测,但由于无论如何都不会传输禁用的表单字段,我希望它们不会发生验证。
  • 我不应该禁用它们,我只是希望它们仅在可见时验证。除非让他们禁用更容易?
  • 我的意思是让它们都隐形 禁用。使用 jQuery,这很容易。
  • 是的,我知道该怎么做,我宁愿只在可见时才需要它们,根据我原来的问题

标签: jquery validation


【解决方案1】:

可见检查的问题在于这部分:.is('visible') 它必须是:.is(':visible') 才能使用:visible selector


作为替代方案,您可以使用ignore option 来更轻松地做您想做的事情,如下所示:

$("#myForm").validate({
  //other options
  ignore: ':hidden'
});

这种方法让您可以根据需要使用标准的必需规则。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-06
    • 2023-04-09
    • 1970-01-01
    • 2015-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多