升级到 jQuery 1.8.2 后验证异常
Posted
技术标签:
【中文标题】升级到 jQuery 1.8.2 后验证异常【英文标题】:Validation exception after upgrading to jQuery 1.8.2 【发布时间】:2012-11-23 04:10:28 【问题描述】:升级到 jQuery 1.8.2 版本后,我的验证插件(最新版本 1.10.0)开始给我异常:
错误:语法错误,无法识别的表达式:div class="warningZone" jquery.js(第 4679 行)
这是我的 javascript:
function validateAll()
$("#servicesForm").validate(
errorLabelContainer: "#servicesErrors",
wrapper: "div class=\"warningZone\"",
rules:
mainTransport: mMainTransportReq: true, mMainTransportNotReq: true ,
stay: mStayReq: true
,
messages:
mainTransport:
mMainTransportReq: $("#servicesMainTransportReq").text(),
mMainTransportNotReq: $("#servicesMainTransportNotReq").text()
,
stay: mStayReq: $("#servicesStayReq").text()
);
$("#servicesForm").valid();
validatePeriods();
validateServices();
为什么我的班级 warningZone
开始抛出异常?
【问题讨论】:
如果您将\"
更改为'
,是否可以解决问题?不知道为什么 JQuery 升级现在会导致这个问题。
不,这不能解决我的问题。
【参考方案1】:
如果您删除上面的wrapper
和errorLabelContainer
选项,您可以设置默认值并覆盖showErrors
函数:
$.validator.setDefaults(
showErrors: function(errorMap, errorList)
if (errorList.length < 1)
// clear the error if validation succeeded
$('div.warningZone').remove();
return;
$.each(errorList, function(index, error)
$('div.warningZone',"#servicesErrors").remove();
$('#servicesErrors').append(
$('<div/>')
.addClass('warningZone')
.append(error.message)
);
);
);
【讨论】:
是的,这似乎是一种解决方法,但我仍然不明白 jQuery 版本之间发生了什么变化。 1.7.2 和 1.8 使我的包装函数不起作用?经过一些测试,如果我在包装函数中使用“li”,它不会抛出异常,但如果我在类中使用“div”或“li” - 它会!!!我在 c 版中找不到任何文档,也找不到验证插件中列出的任何错误。以上是关于升级到 jQuery 1.8.2 后验证异常的主要内容,如果未能解决你的问题,请参考以下文章
将 Jquery 升级到 3.4 后,Material js 单选按钮禁用不起作用?
升级到 Bootstrap 4、jQuery 3.3.1 后 jQuery .show() /.hide() 无法正常工作