2011-01-22 5 views
4

Я делаю простую проверку для формы. Валидация javascript работает нормально, и появляется всплывающее окно с правильными ошибками, НО, щелкнув «ОК», я перенаправляюсь на следующую страницу. В идеале предполагается, что он останется на той же странице, чтобы пользователь мог изменить свои ошибки. Пожалуйста, помогите, как можно скорее, это школьный проект, и срок истекает через 3 дня! .. :(Заранее спасибоСообщение об ошибке оповещения JavaScript

<script type = "text/javascript"> 

function show_alert() { 
    if (document.getElementById('time1').value == document.getElementById('time2').value) alert("ERROR! You cannot book the same timing twice!") 
    else if (document.getElementById('time1').value == document.getElementById('time3').value) alert("ERROR! You cannot book the same timing twice!") 
    else if (document.getElementById('time1').value == document.getElementById('time4').value) alert("ERROR! You cannot book the same timing twice!") 
    else if (document.getElementById('time1').value == "0") alert("ERROR! You cannot leave the first time slot blank!") 
    else {} 
} 
</script> 

ответ

3

Это должно быть легко исправить в onsubmit методе вашего тега формы, сделайте следующее:

<form onsumbit="return show_alert();"> 

Вместо того

<form onsumbit="show_alert();"> 

без return, скрипт будет запущен, и форма будет отправлена ​​в любом случае. Кроме того, если в сценарии есть условие ошибки, вам нужно добавить return false;, иначе форма будет отправлена, а return true; если нет ошибки. Вы можете отредактировать сценарий так:

<script type = "text/javascript"> 

function show_alert() { 
    if (document.getElementById('time1').value == document.getElementById('time2').value) { 
     alert("ERROR! You cannot book the same timing twice!"); 
     return false; 
    } else if (document.getElementById('time1').value == document.getElementById('time3').value) { 
     alert("ERROR! You cannot book the same timing twice!"); 
     return false; 
    } else if (document.getElementById('time1').value == document.getElementById('time4').value) { 
     alert("ERROR! You cannot book the same timing twice!"); 
     return false; 
    } else if (document.getElementById('time1').value == "0") { 
     alert("ERROR! You cannot leave the first time slot blank!"); 
     return false; 
    } else { 
     return true; 
    } 
} 

</script> 
+0

Кроме того, 'show_alert' должен возвращать true или false, указывающий, должна ли форма быть отправлена ​​или нет. – casablanca

+0

@casablanca Да - я добавлял, что, когда вы оставили комментарий, он отвлекся, отвечая, и случайно его покинул. :-) –

+0

@jeremy Я просто пробовал это, но он не остается на той же странице. Он по-прежнему переходит к следующей странице. Это коды для кнопки: , и это код для формы:

Chandni

Смежные вопросы