jQuery Select2设置含特殊字符的值时出现语法错误求助
解决Select2设置含特殊字符值时的语法错误问题
嘿,咱们来拆解下你遇到的这个问题:你在点击事件里用Select2设置值时触发了语法错误,根源出在HTML实体编码的字符上,我给你几个解决办法:
错误原因
你定义的newVal用了&(也就是&的HTML转义形式),但Select2在处理这个值的时候,会把它当成CSS选择器的一部分解析——而&在选择器里是有特殊作用的,转义后的&就会导致"无法识别的表达式"这个报错。
解决方案
用原始字符替代HTML实体
首先把newVal改成带原始&的字符串,因为Select2需要的是实际的文本/值内容,不是HTML转义后的格式:var newVal = 'Today & Tomorrow'; $("#e8_cl").click(function() { $("#e8").select2("val", newVal); });直接操作原生select并触发事件(兼容旧版Select2)
如果你的Select2版本比较旧,对特殊字符的处理不够完善,可以直接设置原生select的value,再手动触发Select2的change事件:var newVal = 'Today & Tomorrow'; $("#e8_cl").click(function() { $("#e8").val(newVal).trigger('change.select2'); });优先使用option的value属性值(最稳妥)
建议给对应的option设置一个不含特殊字符的value属性,比如:<select id="e8"> <option value="today-tomorrow">Today & Tomorrow</option> <!-- 其他选项 --> </select>然后设置值时直接用这个
value值,完全避开特殊字符的问题:var newVal = 'today-tomorrow'; $("#e8_cl").click(function() { $("#e8").select2("val", newVal); });
小提醒
一定要确保你的<select>里确实存在匹配的选项哦——不管是文本内容匹配,还是value属性匹配,只有存在对应选项,Select2才能正确设置值。
内容的提问来源于stack exchange,提问作者Dhiraj
相关产品推荐
相关产品推荐

