代码之家  ›  专栏  ›  技术社区  ›  Kevin C.

jquery validate-resetform()未按预期运行

  •  0
  • Kevin C.  · 技术社区  · 16 年前

    有问题的站点是 http://epraxadev.com/kw/palisade-palms/

    “单击此处查看小册子”和“了解关于Palisade Palms的更多信息”都会弹出一个带有要填写的相同HTML表单的lightbox…“了解更多信息…”链接还会更改表单中的某些HTML(隐藏表单字段的值和所需字段)。

    我正在为lightbox使用colorbox,并且对于它的onClosed事件,我需要重置表单:

    onClosed: function() {
            $('#brochure-form label em').remove();
            $('#brochure-form').data('validator').resetForm();
        }
    

    现在的问题是:

    • 用户试图提交“宣传册”表单,但未通过验证。用户关闭灯箱。
    • 用户打开“了解更多”lightbox,并尝试提交表单…现在,不是使用正确的验证规则(只需要电子邮件和引用),而是需要填写所有字段(就像“手册表单”中的情况一样)

    有什么可以添加到onClosed函数中,以清除所有验证规则吗?

    谢谢你们!

    1 回复  |  直到 16 年前
        1
  •  0
  •   Kevin C.    16 年前

    我通过在OnComplete和OnClosed ColorBox事件期间分别手动添加和删除所需输入的“Required”类来修复它。

    之前,我添加了所需的输入规则

    $('#brochure-form').validate({
                rules: {
                    first_name: "required",
                    last_name:  "required",
                    email: "required",
                    phone: "required",
                    address: "required",
                    city: "required",
                    state: "required",
                    zip: "required",
                    referrer: "required"
                }
            }); 
    

    这些规则没有用resetform()函数正确清除。

    您可以在以下位置看到工作代码: http://epraxadev.com/kw/palisade-palms/

    您可以在以下位置看到旧的非工作版本: http://epraxadev.com/kw/palisade-palms/test.html