2

我正在使用 jQuery 验证插件来验证表单。我的问题是表单是动态生成的,所以页面第一次加载时它还不存在。我不确定如何做到这一点,或者是否可以做到。这是我的代码,只要我对表单进行硬编码,它就可以工作。

$(document).ready(function() {
    var post_url = '##removed##';

    $("#form").validate({
        success: "valid",
        rules: {
            username: {
                required: true,
                minlength: 6,
                maxlength: 15,
                remote: {
                    url: post_url,
                    type: "post",
                    data: { type : 'username' }
                }
            },
            email: {
                required: true,
                email: true,
                remote: {
                    url: post_url,
                    type: "post",
                    data: { type : 'email' }
                }
            }
        },
        messages: {
            username: {
                remote: "Username taken. Please choose another."
            },
            email: {
                remote: "E-mail address taken. Please choose another."
            }
        }
    });

});

我尝试使用 jQuery 的 on() 函数想出一些东西,但到目前为止我尝试过的任何方法都没有奏效。我试图完成的事情甚至可以完成吗?最坏的情况是我对表单进行了硬编码,但如果可能的话,我想避免这样做。

提前致谢 ...

4

1 回答 1

2

我假设表单是使用 ajax 连接加载的。有一个回调来查找表单并在validate()之后调用该函数。

您还可以使用 DOM 突变事件 (DOMNodeInserted) 附加一个事件侦听器,并每次检查插入到 DOM 的节点是否是您正在等待的表单,然后运行validate()。希望这可以帮助

于 2012-12-19T22:09:51.610 回答