使用javascript将多个选项设置为在选择输入中选定

xe55xuns  于 2023-03-16  发布在  Java
关注(0)|答案(2)|浏览(115)

感谢您抽出时间阅读我的问题。
我有一个值的数组,我要发送到我的HTML表单,我想用它来预先选择我的表单中的列表。我的选择列表是“多个”

<select id="idResourceName" name="ResourceName" form="carform" multiple="true">
            
</select>

假设这个列表有10个值,但是我的数组有2个,我想在表单中从列表中预先选择2。
以下是我根据其他帖子到目前为止所做的尝试......但我没有任何进展。

var item = document.getElementById("idResourceName");
        ResourcesArr.forEach(function(r){
          //var option = document.createElement("option");
          //option.textContent = r[0];
          //item.appendChild(option);
          window.alert(r);
          for(var i, j = 0; i = item.options[j]; j++) {
              if(i.value == r) {
                  //item.selectedIndex = j;
                  windows.alert(item.options[i]);
                  //break;
              }
          }
        });

如果我取消这一行的注解,并注解掉下一行,我可以让数组中的第一个值工作,但第二个值不工作......也就是说,我可以在列表中预先选择一个值。
真的很感谢你的时间和任何帮助你可以给予。
谢谢
尝试使用其他帖子

umuewwlo

umuewwlo1#

请看下面的代码,它可能会解决您的问题.

var item = document.getElementById("idResourceName");
item.selectedIndex = [];
ResourcesArr.forEach(function(r){
  for(var i, j = 0; i = item.options[j]; j++) {
    if(i.value == r) {
      if (ResourcesArr.includes(i.value)) {
        item.selectedIndex.push(j);
      }
    }
  }
});
item.selectedIndex = item.selectedIndex;

希望这对你有帮助。

628mspwn

628mspwn2#

多亏了Hitesh的建议,我才得以理出头绪。

var item = document.getElementById("idResourceName");
        var selectedIndex = [];
        ResourcesArr.forEach(
          function (r){
            for (let i = 0;i < item.options.length;i++) {
              if(item.options[i].value == r.trimStart()){
                item.options[i].selected = true;
              }
            }
          }
        );

我不完全理解这个例子,但是我认为我的代码是close(?)。我还认为主要的区别是在列表框中的每个项目循环时标记为选中,而不是添加到数组中...至少我的代码在我做了这个修改后终于工作了。
谢谢!

相关问题