В вашей функции allFunctions
:
function allFunctions() {
correctBirthday()
sum();
rate();
loop();
}
Если correctBirthday
возвращает неопределенное значение, allFunctions
не знает, что должно остановиться. У вас есть два основных варианта:
- Сгенерировать ошибку, если день рождения неправильный, и перехватить ее позже:
function allFunctions() {
try {
correctBirthday()
sum();
rate();
loop();
} catch ( error ) {
alert( error.message );
}
}
function correctBirthday() {
var d = inputA.value;
if ( correctDate(d) == false ) {
throw new Error("The form of the date is incorrect");
}
if ( validDate(d) ) {
result.innerHTML = '';
}
}
Позвольте
correctBirthday
вернуть
true
или
false
в зависимости от того, удалось ли это, и пусть
allFunctions
ответит соответственно:
function allFunctions() {
let birthdayIsCorrect = correctBirthday();
if ( !birthdayIsCorrect ) {
return;
)
sum();
rate();
loop();
}
function correctBirthday() {
var d = inputA.value;
if ( correctDate(d) == false ) {
alert("The form of the date is incorrect");
return false;
}
if ( validDate(d) ) {
result.innerHTML = '';
}
return true;
}
РЕДАКТИРОВАТЬ: Если вы хотите, чтобы это поведение при validDate(d)
также неверно, попробуйте ...
function correctBirthday() {
var d = inputA.value;
if ( correctDate(d) == false ) {
throw new Error("The form of the date is incorrect");
}
if ( !validDate(d) ) {
throw new Error("The date is invalid");
}
result.innerHTML = '';
}
// or...
function correctBirthday() {
var d = inputA.value;
if ( correctDate(d) == false ) {
alert("The form of the date is incorrect");
return false;
}
if ( !validDate(d) ) {
alert("The date is invalid");
return false;
}
result.innerHTML = '';
return true;
}