Я не знаю 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
. Під час вставлення захопіть подію та проаналізуйте вміст назад у масив.