我正在使用jquery验证来验证我的表单。它在文本框上运行良好,但是当我尝试验证下拉列表时,它仅在 IE 8 中抛出“对象不支持此属性或方法”错误。它在FF或Chrome中运行良好。不确定我是否做错了什么。我甚至尝试不使用自定义的“notEqual”函数来测试它,并将其替换为“required”方法中的构建。再一次,它给了我同样的东西。
请帮忙!非常感谢!
这是我的代码:
$(document).ready(function () {
jQuery.validator.addMethod("notEqual", function(value, element, param) {
return this.optional(element) || value != param;
}, "Please specify a different (non-default) value");
$("#form1").validate({
focusInvalid: false,
focusCleanup: true,
debug: false,
onkeyup: false,
onclick: true,
onsubmit: true,
onkeyup: false,
rules: {
<%=titleText.UniqueID %>: {
required: true
},
<%=startDateText.UniqueID %>: {
required: true ,
date: true
},
<%=endHourText.UniqueID %>: {
notEqual: "00"
},
submitHandler: function(form) {
form.submit();
}
},
messages: {
<%=titleText.UniqueID %>: {
required: "Please provide a name for the event."
},
<%=startDateText.UniqueID %>: {
required: "Please enter a date for the event.",
date: "Please enter a valid date."
},
<%=endHourText.UniqueID %>: {
notEqual: "Please enter a valid end time."
}
}
});
});
提前致谢!!
答案 0 :(得分:0)
我不完全确定为什么element.form对你来说是空的。我从来都不清楚为什么它对我来说也是空的,除非它与验证即使从包含这个特定的select元素的HTML被从DOM中删除的事实有关。
我通过在验证代码中添加一个检查来解决这个问题,这样我只验证了element.form!= null的select元素。您可能还需要检查element.form是否存在,因为在Firefox中没有这样的属性:
if (element.form && element.form != null) { ... }