我正在使用jQuery validate插件来验证表单。我的问题是表单是动态生成的,所以当页面首次加载时它还不存在。我不知道该怎么做,或者甚至可以做到。这是我的代码,只要我对表单进行硬编码,它就能正常工作。
$(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()函数来提出一些东西,但到目前为止我没有尝试过任何东西。即使我完成了我想要完成的事情吗?最糟糕的情况是我对表单进行了硬编码,但如果可能的话,我想避免这样做。
提前致谢...
答案 0 :(得分:2)
我假设使用ajax连接加载表单。进行回调以查找表单并在之后调用validate()
函数。
您还可以使用DOM突变事件(DOMNodeInserted)附加事件侦听器,并每次检查插入到DOM的节点是否是您正在等待的表单,然后运行validate()
。希望这有帮助