在使用Java的多重选择中设置选定的索引

Cat*_*key 5 javascript options multi-select

我不确定为什么这行不通,并希望在此方面有所帮助!是的,我已经看过这个

我试图在一个选择元素中设置多个选项,使用包含我想要选择的值的数组进行选择,并在数组和选择元素中的选项之间进行插入。请在下面找到代码:

// value is the array.
for (var j = 0; j < value.length; j++) {
    for (var i = 0; i < el.length; i++) {
        if (el[i].text == value[j]) {
            el[i].selected = true;
            alert("option should be selected");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

完成这些循环后,即使alert()触发,也不会选择任何内容。

任何想法都欢迎!

谢谢

厘米

PS(不确定代码格式化发生了什么)。

编辑:全功能

    if (CheckVariableIsArray(value) == true) {
        if (value.length > 1) { // Multiple selections are made, not just a sinle one.
            var checkBoxEl = document.getElementById(cbxElement);
            checkBoxEl.checked = "checked";
            checkBoxEl.onchange(); // Call function to change element to a multi select
            document.getElementById(element).onchange(); // Repopulates elements with a new option list.
            for (var j = 0; j < value.length; j++) {
                for (var i = 0; i < el.length; i++) {
                    if (el[i].text === value[j]) {
                        el[i].selected = true;
                        i = el.length + 1;
                    }
                }
            }
            //document.getElementById(element).onchange();
        }
    }
    else {
        for (var i = 0; i < el.length; i++) {
            if (el[i].innerHTML == value) {
                el.selectedIndex = i;
                document.getElementById(element).onchange();
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

sim*_*aun 2

对我有用。您是否正确设置 el 和 value ?您确定要查看每个选项的 innerHTML 而不是它的 value 属性吗?

请参阅jsFiddle


HTML:

<select id="pick_me" multiple="multiple">
    <option>Hello</option>
    <option>Hello</option>
    <option>Foo</option>
    <option>Bar</option>
</select>
Run Code Online (Sandbox Code Playgroud)

JS:

var value = ['Foo', 'Bar'],
    el = document.getElementById("pick_me");

// value is the array.
for (var j = 0; j < value.length; j++) {
    for (var i = 0; i < el.length; i++) {
        if (el[i].innerHTML == value[j]) {
            el[i].selected = true;
            //alert("option should be selected");
        }
    }
}
Run Code Online (Sandbox Code Playgroud)