通过 ajax 在 bootstrap 模态中加载的表单不起作用
form loaded in bootstrap modal via ajax does not work
我有一个模式,其内容(表单输入)是使用 ajax 调用从第二个 html 文档加载的。我需要验证表单,为此我尝试实施 jquery 验证。如果表单未加载 ajax 它可以正常工作(请参阅我的 jsbin,该插件可以正常工作并且它还在执行 ajax 调用以验证名称),但因为我需要它(在模态中),它不是。控制台显示:cannot read 属性 of 'settings' of undefined.
再次感谢您的帮助。
这是我的 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();
});
});
也许它在使用 $(document).ready() 时不起作用,因为触发此事件时元素不存在?
尝试使用
$(document).on("ajaxComplete", function(){ # rest of your code # });
我有一个模式,其内容(表单输入)是使用 ajax 调用从第二个 html 文档加载的。我需要验证表单,为此我尝试实施 jquery 验证。如果表单未加载 ajax 它可以正常工作(请参阅我的 jsbin,该插件可以正常工作并且它还在执行 ajax 调用以验证名称),但因为我需要它(在模态中),它不是。控制台显示:cannot read 属性 of 'settings' of undefined.
再次感谢您的帮助。
这是我的 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();
});
});
也许它在使用 $(document).ready() 时不起作用,因为触发此事件时元素不存在?
尝试使用
$(document).on("ajaxComplete", function(){ # rest of your code # });