Кнопка отмены не работает для окна подтверждения

Я пытаюсь проверить переключатели в JavaScript, и это мой код:

if (document.ExamEntry.GCSE.checked == true) {
    confirm("You have selected GCSE. Is this correct?");
}
if (document.ExamEntry.AS.checked == true) {
    confirm("You have selected AS. Is this correct?");
}
if (document.ExamEntry.A2.checked == true) {
    confirm("You have selected A2. Is this correct?");
}

Откроется окно подтверждения, и нажатие кнопки "Отправить" успешно переведет вас на следующую страницу, однако кнопка "Отмена", похоже, не работает - она ​​просто возвращает вас на следующую страницу, когда я хочу, чтобы она осталась на странице, чтобы вы могли изменить ваш вариант.

Я пробовал такие вещи, как результат возврата; результат = ложь

Они либо не работают, либо, если они работают, то наоборот, кнопка отмены работает, оставаясь на той же странице, но это будет происходить и с кнопкой отправки.

3 ответа

Проверьте документацию для подтверждения. Это говорит,

result - логическое значение, указывающее, был ли выбран OK или Cancel (true означает, что OK)

Это означает, что каждая из ваших строк должна проверять возвращаемое значение. Краткий способ сделать это, например:

if (!confirm("You have selected A2. Is this correct?")) {
    // event.cancel = true, or whatever you need to do on your side to cancel
} // otherwise fall through and do what you're doing.

Как и сейчас, так как вы никогда не смотрите на возвращаемое значение confirmТаким образом, вы всегда проваливаетесь на ваш случай "успеха".

if (document.ExamEntry.GCSE.checked == true) { 
    if(confirm("You have selected GCSE. Is this correct?")) {
        // do something
    }
} if (document.ExamEntry.AS.checked == true) {
    if(confirm("You have selected AS. Is this correct?")) {
        // do something
    }
}  
if (document.ExamEntry.A2.checked == true) {
    if(confirm("You have selected A2. Is this correct?")) {
        //do something
    }
}
var gcse = true, 
    as   = true,
    a2   = true;

if (document.ExamEntry.GCSE.checked == true) {
    gcse = confirm("You have selected GCSE. Is this correct?"));
}

if (document.ExamEntry.AS.checked == true) {
    as = confirm("You have selected AS. Is this correct?");
}

if (document.ExamEntry.A2.checked == true) {
    a2 = confirm("You have selected A2. Is this correct?");
}

if (gcse && as && a2) {
    // you're golden
    window.location.href = 'otherpage'
}
Другие вопросы по тегам