首页 > 解决方案 > 如何在不使用php javascript提交的情况下在多选下拉列表中输出所有选定选项的文本

问题描述

我无法将所选选项显示为列表。如何在选择的更改事件中遍历多选下拉列表中的选定选项

这里只显示了一个选项,因为我不知道循环选择的选项


<select class="form-control selectpicker sel3" multiple data-live-search="true" id="sel3" name="course[]">
    <option value="1">Disciplinary Procedure</option>
    <option value="2">Office Methods</option>
    <option value="3">Photoshop</option>
    <option value="4">CIGAS</option>
    <option value="5">Auditing</option>         
</select>

$(document).ready(function() {
    $("#sel3").change(function() {
        var x = document.getElementById("sel3");
        var i = x.selectedIndex;
        document.getElementById("demo").innerHTML= x.options[i].text;
    });
}); 

如果选择了前两个选项,则仅显示第一个选项

标签: javascriptjquery

解决方案


如果我正确阅读了您的问题,您的意思是选项标签的文本标签。只需像这样使用.each()方法迭代每个选定的选项:

$('#sel3').on('change', function() {
    var selectedTexts = [];
    $('#sel3 option:selected').each(function(i, selectedOptions) {
        selectedTexts.push($(selectedOptions).text());
    });
    console.log(selectedTexts);
});

如果您想要 value 属性中的数据,请$(selectedOptions).val()改用。

要将数组项转换为逗号分隔的列表,请使用selectedTexts.join();并将其分配为$('#demo').html( selectedTexts.join() )


推荐阅读