首页 > 解决方案 > 无法使用 JavaScript 在多选中选择带有空格的选项值

问题描述

<select id="subjectsPassed" name="subjects_passed[]" data-width="100%">
    <option value="Hindi">Hindi</option>
    <option value="English">English</option>
    <option value="Math">Math</option>
    <option value="Science">Science</option>
    <option value="Social Science">Social Science</option>
    <option value="Sanskrit">Sanskrit</option>
</select>

我有一串主题,带有空格的主题未能被选中

使用 JavaScript

var hidValue = 'Hindi, English, Math, Science, Social Science, Sanskrit';
var optionVal = [];
var selectedOptions = hidValue.split(/\s*(?:,|$)\s*/);
for(var i in selectedOptions) {
 optionVal[i]= selectedOptions[i];    
}
optionVal.forEach(myFunc);
function myFunc(value){
 $("#subjectsPassed option[value="+value+"]").prop("selected", true);
}
$("#subjectsPassed").multiselect('reload');

结果

请给出一个好的解决方案

标签: javascripthtml

解决方案


CSS 选择器的属性值应该用双引号括起来。所以改变:

 $("#subjectsPassed option[value="+value+"]")

至:

 $('#subjectsPassed option[value="'+value+'"]')

推荐阅读