【问题标题】:jQuery validation per multiple fieldsets, how to use different event to trigger validation per section每个多个字段集的 jQuery 验证,如何使用不同的事件来触发每个部分的验证
【发布时间】:2009-11-12 16:00:36
【问题描述】:

我有一个非常非常长的表格(大约 300 个字段),我使用这个光滑的jQuery plugin Form Wizard 将其分解为不同的部分。如果您将表单分组到不同的字段集中,FormWizard 将自动一次显示一个部分,并带有一个 Next 超链接将您带到下一个部分:
<a id="step0Next" class="next" href="#">Next ></a>

我的问题是:使用 jQuery Validation 插件,当用户单击“下一步”等时,我如何验证每个字段集,而不是使用“提交”按钮。换句话说,如何将触发事件从提交更改为六个不同部分的六个不同超链接?

感谢您帮助这个新手。

【问题讨论】:

    标签: jquery validation


    【解决方案1】:

    我不认为这是一个微不足道的解决方案,但我在当前项目中做了类似的事情。

    1) 将事件绑定到每个下一个链接。在这种情况下,您将使用 jquery 验证插件的 element 方法手动验证字段集中的每个输入。

    2) 在事件中,获取当前字段集。您的插件可能会为您跟踪这一点,但我不熟悉它。

    3) 搜索所有输入的字段集并单独验证它们。

    4) 如果字段集中的任何输入无效,请不要前进到下一页。

    每当单击下一个链接时,以下代码将手动验证字段集中的非隐藏输入。它没有显示如何检索字段集和验证器,或者如果表单无效,如何停止进入下一个字段集。您的表单插件可能会对此有所帮助。你应该从这个例子中得到的是,你可以使用 jquery 验证插件手动验证字段集中的所有输入。

    $('.next').bind('click', function() {
     var inputs = myFieldset.find(':input:not(:hidden)');
     for (var i = 0; i < inputs.length; i++) {
       myValidator.element($(inputs[i]));
     }
    });
    

    【讨论】:

      【解决方案2】:

      如果我理解正确,为什么不这样做:

      使用 jQuery 验证插件查看用户输入是否正确,如果正确则使链接到表单的下一部分可见。

      例如,像这样创建一个 span 标签:

      <span class="formLink"></span>
      

      然后,当 jQuery 验证插件检查用户输入是否正常时,请执行以下操作:

      $(".formLink").html('<a id="step0Next" class="next" href="#">Next</a>');
      

      如果验证插件检测到用户输入有错误,那么您可以在同一个标​​签中输出错误,如下所示:

      $(".formLink").text("ERROR: You have not supplied the correct information.");
      

      【讨论】:

      • 谢谢,但这不是我想要的 - 自定义错误消息和诸如此类的东西已被纳入验证插件并且可以正常工作。我所追求的是如何将事件触发器从提交按钮更改为每个下一个标签,以便可以分步验证表单,而不是一次验证。那有意义吗?我只是不太了解 jQuery 语法,无法将触发器从提交按钮更改为超链接。
      • 啊,我明白你的意思了,能否请你给我看看提交按钮的代码,以便我看看它是如何被触发的。
      【解决方案3】:

      这是来自 jquery 论坛的一个很好的答案:

      http://forum.jquery.com/topic/validation-plugin-validating-by-parts

      【讨论】:

      • 欢迎来到 Stack Overflow!请注意,您应该在此处或此站点上发布有用的答案点,否则您的帖子可能会被删除为"Not an Answer"。如果您愿意,您仍然可以包含该链接,但仅作为“参考”。答案应该是独立的,不需要链接。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-13
      • 1970-01-01
      • 2023-04-07
      • 2011-04-10
      • 1970-01-01
      相关资源
      最近更新 更多