javascript - 从保管箱中选择许多项目,让它们出现在文本框中

标签 javascript html drop-down-menu

我想在下拉框中添加选中的项目并将它们放在文本框中。 我现在可以只选择一个项目并将其放入文本框中:

HTML代码:

   <select name="ncontacts" id = "contacts" multiple="yes" onclick="ChooseContact(this)"> </select>

JS代码:

    function ChooseContact(data)
    {
      document.getElementById ("friendName").value = data.value;
    }

但是当我选择 2 个项目时,只有第一个被写在文本框中。 那么,您知道我该如何修复它,让它们都出现在文本框中吗?

最佳答案

另一种可能的解决方案是:

function ChooseContact(list) {
    var selected = [];
    Array.prototype.forEach.call(list.options, function(option) {
        if( option.selected ) {
            selected.push(option.value);
        }     
    });
    document.getElementById('friends').value = selected.join(', ');
}​

demo here

编辑:备案-
Array.prototype 在执行上比 [] 稍微快一些。但他们做同样的事情 :) 性能损失并不大(我在我的代码中使用 []。但我也可以向您展示稍微更快更详细的方式)。

关于javascript - 从保管箱中选择许多项目,让它们出现在文本框中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10340074/

相关文章:

optimization - 删除 HTML Canvas alpha channel

javascript - 查找 JS 中使用的 CSS 类

html - 如何移除滚动条并让其他元素出现在我的 <div> 顶部?

javascript - 加载这个图片怎么办?

javascript - 如何使用 Javascript 使图像在屏幕右侧移动并返回

javascript - 如何正确使用媒体查询(css)?

javascript - jQuery 下拉菜单悬停状态

javascript - 将 javascript 添加到 Joomla 网站的头部

javascript - TypeError : this. props.navigation.getParam 在使用 React Native 传递参数时不是函数

html - 使下拉菜单与导航栏宽度相同