Подтвердить функцию окна не определено

Просто хотел задать быстрый вопрос. В приведенном ниже коде, который я сделал, мне было интересно, не могли бы вы сказать мне, почему на консоли IE он говорит, что имя функции не определено.

Код JavaScript:

function check() {
var checked = null;
var inputs = document.getElementsByName('examGroup');

for (var i = 0; i < inputs.length; i++) {
if (inputs[i].checked) {
checked = inputs[i];
break;
}
}

Спасибо всем и надеюсь, что вы можете помочь! ----РЕДАКТИРОВАТЬ----

Вот ошибка консоли IE с номером строки: SCRIPT5009: 'check()' не определено - Файл: Index.html, Строка: 160, Столбец: 27

Вот где он застревает:

<input onClick="check()" type="radio" id="A1" name="examGroup" value="GCSE" />GCSE

2 ответа

Решение

Это потому что check() определяется внутри функции validateForm() и в таком не совсем определен сам по себе. Переместите его за пределы функции validateForm() наряду с остальными вашими функциями.

function validateForm() {
    ...
};

function check() {
    ...
}

Я думаю, что функция проверки (это) определена внутри другой функции validateForm(), следовательно, не определена.

Все функции должны быть определены независимо, его простой вопрос скобки.

Скопируйте приведенный ниже код и попробуйте:

<script language="JavaScript" type="text/JavaScript">

/*
THINGS TO LOOK AT:
- ERROR TRAPPING OF CONFIRM
*/

function validateForm() {
var result = true;
var msg="";

document.getElementById('name').style.color="black";
document.getElementById('subject').style.color="black";
document.getElementById('CadNumber').style.color="black";

} //validateForm() ends here

function nameChecks() {
if (document.ExamEntry.name.value=="") {
msg+=("You must enter your name \n");
document.ExamEntry.name.focus();
document.getElementById('name').style.color="red";
result = false;
}

if (!isNaN(parseInt(document.ExamEntry.name.value))) {
alert("You must only enter letters in the name! \n");
document.ExamEntry.name.focus();
document.getElementById('name').style.color="red";
result = false;
}

} //nameChecks() ends here

function subjectChecks() {
if (document.ExamEntry.subject.value=="") {
msg+=("You must enter the subject \n");
document.ExamEntry.subject.focus();
document.getElementById('subject').style.color="red";
result = false;
}

if (!isNaN(parseInt(document.ExamEntry.subject.value))) {
alert("Please make sure you only have letters in the subject! \n");
document.ExamEntry.CadNumber.focus();
document.getElementById('subject').style.color="red";
result = false;
}

} //subjectChecks() ends here.

function CadNumberChecks() {
if (document.ExamEntry.CadNumber.value=="") {
msg+=("You must enter the Candinate Number! \n");
document.ExamEntry.CadNumber.focus();
document.getElementById('CadNumber').style.color="red";
result = false;
} 

if (document.ExamEntry.CadNumber.value.length!== 4) {
alert("Make sure you only have 4 numbers in the Candinate Number! \n");
document.ExamEntry.CadNumber.focus();
document.getElementById('CadNumber').style.color="red";
result = false;
}

if (isNaN(parseInt(document.ExamEntry.CadNumber.value))) {
alert("Please make sure you only have numbers in the Candinate Number! \n");
document.ExamEntry.CadNumber.focus();
document.getElementById('CadNumber').style.color="red";
result = false;
}

} // CadNumberChecks ends here



function check() {
var checked = null;
var inputs = document.getElementsByName('examGroup');

for (var i = 0; i < inputs.length; i++) {
if (inputs[i].checked) {
checked = inputs[i];
break;
    }
  } // For loop ends here.

    if(checked==null){
    alert('Please choose an option.');
    return false;
    } 
    else
    return confirm('You have chosen '+ checked.value + ', is this correct?');


    nameChecks();
    subjectChecks();
    CadNumberChecks();

if (msg!="") {

}

alert(msg);

return result;
}

</script>
</head>
Другие вопросы по тегам