当表单元素包含带有一些特殊符号的id时,jQuery验证器会出错'无法识别的表达式'

jQuery validator gives error when a form element contains id with some special symbols. 'Unrecognized expression'

本文关键字:出错 表达式 识别 验证 包含带 元素 表单 id 特殊符号 jQuery      更新时间:2023-09-26

我有一个包含一些元素的表单,这些元素使用带有特殊符号的id:

id="$FormData[1]$PersonData[1]$PhysicalPerson[1]$PersonName[1]$Affix[@type='qualification' and @position='prefix'][1]cb"

我有一个function getEscapedID(id),当我需要使用jquery选择器查找元素时,我用它来转义有问题的字符:CCD_ 2。

这不是问题——当我尝试它时,我得到了确切需要的元素。但是调用input.valid();会给我一个错误:

错误:语法错误,无法识别的表达式:label[for='$FormData[1]$PersonData[1]$PhysicalPerson[1]$PersonName[1]$Affix[@type='qualification' and @position='prefix'][1]cb']

编辑:我的问题是是否有可能对此做点什么。如果没有,我会考虑简化id。

问题是我可能使用了旧的jquery.validate.min.js脚本。当我在这里尝试这个时,它有效:http://ajax.aspnetcdn.com/ajax/jquery.validate/1.9/jquery.validate.js

最终,表单的ID被更改,因为根据http://validator.w3.org,所以我怀疑问题主要出在插件上。