解決策が見つからないという問題があります。私のコードには、という変数がありますlist
。変数list
は、を使用して入力要素を取得することになっていますが、ステートメントが終了した後、getElementsByName()
この変数は空になります(つまりlist.length == 0
) 。if
以下のコードでは、for
ループの開始時に、list.length
はゼロまたは未定義です。
なぜこれが起こるのですか?
関数は次のとおりです。
function chekRadioToAnswer() {
var signAnswers = new Array(0, 0, 0, 0);
var grades = [[0, 5, 10, 15], [15, 12, 10, 5, 0], [0, 5, 10, 15, 20], [0, 0, 20, 30]];
var answers = new Array(0, 0, 0, 0, 0, 0);
for (num = 2; num <= 5; num++) {
if (num == 2) {
list = document.getElementsByName("answer2");
}
if (num == 3) {
list = document.getElementsByName("answer3");
}
if (num == 4) {
list = document.getElementsByName("answer4");
}
if (num == 5) {
list = document.getElementsByName("answer5");
}
for (i = 0; i < list.length; i++) {
if (list[i].checked) {
var value = document.getElementById("hiddenAnswers").getAttribute("value");
document.getElementById("hiddenAnswers").setAttribute("value", (value + grades[num - 2][i]));
break;
}
}
list.length = 0;
}
return false;
}