Если вы хотите поместить проверенные элементы в массив, то первое, что вам нужно убедиться, это то, что каждый флажок содержит значение, которое он представляет в той или иной форме. Ваш код пытается это сделать, но когда вы пишете
document.write('<br><input type="checkbox" name="studentList[i]" id="i" value="i">'+ studentList[i]);
атрибут name каждого флажка всегда один и тот же, поскольку он является константной строкой ("studentList [i]"), а не значением из массива, поэтому его следует заменить на:
document.write('<br><input type="checkbox" class="special"name='+studentList[i]+ ' id="i" value="i">'+ studentList[i]);
Как только мы закончим с вводом, мы сможем собирать значения только из отмеченных флажков. Один из способов сделать это - назначить класс всем флажкам, чтобы впоследствии к ним можно было получить доступ через getElementsByClassName () функция.
После получения атрибут значения только тех флажков должен быть помещен в массив, у которого свойство checked имеет значение true.
Немного другой код, демонстрирующий это:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<button id="clickthis">Click this</button>
</body>
<script>
var studentList=["nevil","ron","draco","harry"];
var finalarray=[];
function runmyfun(){
var checkboxes=document.getElementsByClassName("special"); //get all checkboxes
for(var i=0;i<checkboxes.length;i++){
if(checkboxes[i].checked){
finalarray.push(checkboxes[i].getAttribute("name")); //if checked then push to array the value
}
}
//now send the finalarray to the destination
}
document.getElementById("clickthis").onclick=function(){
document.write(new Date().toLocaleDateString());
for (var i = 0; i < studentList.length; i++) {
document.write('<br><input type="checkbox" class="special"name='+studentList[i]+ ' id="i" value="i">'+ studentList[i]); //concat properly
}
document.write('<br><input type="button" value="Submit Early Release" onclick="runmyfun()" />');
document.write('<input type="button" value="Close" onclick="google.script.host.close()" />');
};
</script>
</html>
Надеюсь, это то, что вы искали, а не что-то еще.