2013-12-11 1 views
0

Я пытаюсь проверить радиокнопки в 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?"); 
} 

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

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

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

+2

Что следующая страница? Вы говорите о следующем флажке подтверждения, или вы перенаправляете куда-нибудь? – adeneo

+3

Ваши подтверждения ничего не делают с результатом подтверждения. Они могут также быть оповещениями. –

+0

Вы хотите отслеживать результат подтверждения и делать с ним что-то ... –

ответ

0
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' 
} 
3

Оформить документацию по адресу confirm. Он говорит,

результатом является логическое значение, указывающее, является ли OK или Отмена была выбрана (истина означает 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, так что вы всегда проваливаются на свой «успех» дела.

0
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 
    } 
} 
+0

может кто-то прикрыть мой ответ! – vrunoa

+0

спасибо @ScottMermelstein – vrunoa