我对JavaScript一无所知,但我成功地使用来自各种Stack Overflow答案的零散信息组装了这段代码。它可以正常工作,并通过警报框输出文档中所有选定复选框的数组。
function getSelectedCheckboxes(chkboxName) {
var checkbx = [];
var chkboxes = document.getElementsByName(chkboxName);
var nr_chkboxes = chkboxes.length;
for(var i=0; i<nr_chkboxes; i++) {
if(chkboxes[i].type == 'checkbox' && chkboxes[i].checked == true) checkbx.push(chkboxes[i].value);
}
return checkbx;
}
我用以下方式来称呼它:
<button id="btn_test" type="button" >Check</button>
<script>
document.getElementById('btn_test').onclick = function() {
var checkedBoxes = getSelectedCheckboxes("my_id");
alert(checkedBoxes);
}
</script>
现在我想修改它,这样当我点击 btn_test
按钮时,输出数组 checkbx
将被复制到剪贴板中。我尝试添加:
checkbx = document.execCommand("copy");
或者checkbx.execCommand("copy");
在函数结尾处,并像下面这样调用它:
<button id="btn_test" type="button" onclick="getSelectedCheckboxes('my_id')">Check</button>
但是它不起作用,没有数据被复制到剪贴板。
.execCommand('copy')
会复制页面上的选择内容(如果在用户偏好中允许)。你可以尝试将数组字符串化,然后用它填充文本区域,从文本区域中全选,然后使用execCommand
进行复制。粘贴时,捕获事件,并将内容解析回数组。 - Teemu