繁体   English   中英

选择特殊字符不起作用

[英]select with special characters not working

我有一个选择框是

<select>
<option value="">--Select--</option>
<option id="402883273d3fe2bd013d49db55ca0007" value="~`!@#$%^&*()_+-={}|[]\:" title="~`!@#$%^&*()_+-={}|[]\:">~`!@#$%^&amp;*()_+-={}|[]\:</option>
<option id="402883273b660e71013b6ff04187000d" value="asdasd" title="asdasd">asdasd</option>
<option id="402883273952e67f01395332fd5f0006" value="CC-1" title="CC-1">CC-1</option>
<option id="402883273bdb9824013c14d3c2c30007" value="rto" title="rto">rto</option>
<option id="402883273bdb9824013c14d5decf0008" value="xc" title="xc">xc</option>
</select>

现在,当我加载页面并选择值为=“〜`!@#$%^&*()_ +-== {} | [] \\:”时,它未被选中。

选择代码是:

var selectedCategory = "<%=StringEscapeUtils.escapeJavaScript(toEditClause.getClauseGroup().getClauseCategory().getName())%>";
        console.log("before : "+selectedCategory);
        selectedCategory = selectedCategory.replace(/'/g,"\\'");
        console.log("After : "+selectedCategory);
        jQuery("#clauseCategory_ option[value='"+selectedCategory+"']").attr("selected", "selected");

我认为问题是由于特殊字符引起的,否则,如果我选择其他值,例如:“ CC-1” ..,则其工作正常

您可以使用以下解决方案

// Escapes special characters and returns a valid jQuery selector
function jqSelector(str)
{
    return str.replace(/([;&,\.\+\*\~':"\!\^#$%@\[\]\(\)=>\|])/g, '\\$1');
}

代替值去获取ID ..即在ID的基础上进行选择,所以使用此jQuery("#clauseCategory_ option[id='"+selectedCategory+"']").attr("selected", "selected");

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM