我有一个模态,其内容(表单的输入)是使用ajax调用从第二个html文档加载的。我需要验证表单,为此我尝试实现jquery验证。如果表单不是ajax加载,它可以正常工作(请参阅我的jsbin,插件工作,它也在进行ajax调用以验证名称),但是因为我需要它(在模态中),它没有。控制台显示:无法读取未定义的“设置”属性。
再次感谢您的帮助。
这是我的jsbin:http://jsbin.com/nodavibexa/1/edit?html,js,console,output
以下是我的脚本(精简版):
$(document).ready(function () {
$("#customerAddressForm").validate({
rules: {
field1: {
required: true
}
},
messages: {
field1: "Please specify your name"
}
});
$('#btn').click(function () {
var isAdd = $('#customerAddressForm').prop("action").split("/").pop();
console.log(isAdd);
if (isAdd == "shipping") {
console.log("A");
$('#field1').rules("add", {
required: true,
remote: {
url: "https://localhost:8443/mysite/myaccount/addresses/isExistingAddressName",
contentType: "application/json; charset=utf-8",
data: {
customerId: function () {
return $("#customerId").val();
}
}
}
});
} else {
console.log("B");
$('#field1').rules("add", {
required: true,
remote: {
url: "https://localhost:8443/mysite/myaccount/addresses/isExistingAddressName",
contentType: "application/json; charset=utf-8",
data: {
customerAddressId: "-10"
}
}
});
}
$("#customerAddressForm").valid();
});
});
答案 0 :(得分:0)
使用$(document).ready()时可能无效,因为此事件被触发时元素不存在?
尝试使用
$(document).on("ajaxComplete", function(){ # rest of your code # });