我有一个选择元素
<select multiple="multiple" size="10" id="selection">
<option value="test1">Test1</option>
<option value="test2">Test2</option>
</select>
一位用户抱怨无法将值复制到剪贴板。有没有办法让用户可以复制?我创建了这个JSfiddle,但在我看来这不是一个好的解决方案。
我有一个选择元素
<select multiple="multiple" size="10" id="selection">
<option value="test1">Test1</option>
<option value="test2">Test2</option>
</select>
一位用户抱怨无法将值复制到剪贴板。有没有办法让用户可以复制?我创建了这个JSfiddle,但在我看来这不是一个好的解决方案。
function changeClipboardValue(selectBox) {
var clipboard = document.getElementById("clipboard");
var text = "";
for (i = 0; i < selectBox.length; i++) {
if(selectBox.options[i].selected) text += selectBox.options[i].value + ",";
}
clipboard.value = text;
}
function keydown(e) {
if(e.keyCode === 17) {
var clipboard = document.getElementById("clipboard");
clipboard.select();
}
}
function keyup(e) {
if(e.keyCode === 17) {
var selectBox = document.getElementById("selection");
selectBox.focus();
}
}
可能需要添加CSS来隐藏剪贴板字段
#clipboard {width: 1px;height: 1px;padding:0;position:absolute;left:-9999px;}
更新: http://jsfiddle.net/Kcv6j/ 当按住CTRL键选择多个项目时,此版本效果更好。