首先,我将验证添加到表单中:
$('#EmployeeForm').validate({
rules: {
"Employee.FirstName": "required",
"Employee.PatronymicName": "required",
"Employee.LastName": "required",
"Employee.BirthDay": { required: true, date: true }
},
messages: {
"Employee.FirstName": { required: "*" },
"Employee.PatronymicName": { required: "*" },
"Employee.LastName": { required: "*" },
"Employee.BirthDay": { required: "*", date: "00.00.00 format" }
}
});
直到这里才能正常工作。然后我需要将验证规则添加到其他表单元素:
$('#Address_A.Phone1, #Address_A.Phone2, #Address_B.Phone1, #Address_B.Phone2')
.rules("add", {
digits: true
});
我收到错误:'form'为null或不是对象
我检查,表单及其中的所有元素都是在我向其添加验证之前创建的 我无法弄清楚出了什么问题。
答案 0 :(得分:1)
我没有使用过这个插件,但是从我在documentation中看到的你应该使用普通的jQuery选择器而不是#Address_A.Phone1, #Address_A.Phone2, #Address_B.Phone1, #Address_B.Phone2
(那些也是正常的选择器,但它们在正常使用中没有意义)。
因此,请尝试使用以下内容:#EmployeeForm #first-name, #EmployeeForm #last-name
答案 1 :(得分:1)
后者是否可能添加了AJAX返回的结果 - 这个结果可能已经替换了页面上的表单?或者可能是在应用验证插件之前可能正在运行的单独的“on load”部分?我建议使用未经验证的验证脚本并逐步调试(Firefox / Firebug将是我的首选)。在验证设置和规则的添加中放置断点,以查看哪个是首先被击中。如果通过AJAX替换表单,则在添加规则之前必须重新应用验证插件,因为旧表单不再可用。
答案 2 :(得分:1)
只是猜测Address_A.Phone1
元素的ID是什么?
如果是,我猜您的问题来自于您在元素ID中使用.
这一事实。但jQuery不会理解,例如#Address_A.Phone1
为我提供了标识为Address_A.Phone1
的元素,但相反会将此选择符解释为:为我提供标识为Address_A
的{{1}}元素。
但实际上这并没有解释错误。你可以追加这个错误发生在哪一行。它是在你的代码中还是在插件代码中?如果在插件内的哪一行