从 Dropbox 中选择许多项目,并让它们显示在文本框中
Select many items from dropbox & let them appear in a text box
我想在下拉框中添加所选项目并将它们放在文本框中。我现在只能选择一个项目并将其放入文本框中:
网页代码:
<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(', ');
}
演示在这里
编辑:记录在案 -
Array.prototype
在执行方面比[]
略快。但他们做同样的事情:)性能损失并不多(我在代码中使用[]
,但我不妨向您展示稍微快一点更冗长的方式)。
一个可能的(基本)解决方案是这样的:
function ChooseContacts(selectElem) {
var txtBox = document.getElementById ("friendName");
txtBox.value = '';
for (var i=0; i<selectElem.options.length; i++) {
if (selectElem.options[i].selected) {
txtBox.value += selectElem.options[i].value;
}
}
}
function chooseContact(fromElem, appendToElem, separator){
separator = separator|| " ";
var result = [];
[].forEach.call(fromElem.options, functon(option){
if(option.checked){
result.push(option.value);
}
});
appendToElem.value = result.join(separator);
}
相关文章:
- xmlhttp.responseText不显示文本
- 如何在MVC中使用jQuery在文本框旁边显示文本
- 根据页面的位置突出显示文本中的字符
- 当选择值x时,Javascript需要在正确的位置显示文本区域,从而循环通过具有选择选项的表单
- 操作javascript变量[HTML]以只显示文本
- 如何显示文本长度,即使它超过ng最大长度
- 如何在悬停时显示文本而不移动页面上的内容
- ASP.NET MVC,在文本框旁边显示文本
- 可单击滚动图像以显示文本框
- 使用鼠标悬停JavaScript/HTML显示文本
- 延迟高亮显示文本区域中的文本
- 选择“选择选项”时显示文本.怎么做
- 无法使用JavaScript在画布上显示文本
- 在不更改HTML源代码的情况下,在管理员TinyMCE编辑器中突出显示文本
- 将鼠标悬停在图像上时显示文本
- javascript:在for循环中使用settimeout来定期显示文本
- 一页主题搜索/用下一个按钮突出显示文本
- JavaScript 在更改选择时不显示文本区域
- 用于突出显示文本的JQuery/JavaScript插件
- 模式显示文本区域内容不是字符串