jQuery Validate - resetForm()不按预期行事

时间:2010-05-04 02:42:11

标签: javascript jquery jquery-validate

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

“点击此处查看宣传册”和“了解有关Palisade Palms的更多信息”都会打开一个带有相同HTML表单的灯箱,以便填写...“了解更多......”链接也会改变一些HTML表单(隐藏表单字段的值和所需字段)。

我正在使用Colorbox作为灯箱,而对于它的onClosed事件,我有这个重置表单:

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

现在问题在于:

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

我是否可以添加到onClosed函数中以清除所有验证规则?

谢谢你们!

1 个答案:

答案 0 :(得分:0)

我通过手动添加&修复了它。分别在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

看到旧的非工作版本