JavaScript-сообщение об ошибке - PullRequest
4 голосов
/ 22 января 2011

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

<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>

1 Ответ

3 голосов
/ 22 января 2011

Это должно быть легко исправить.В методе 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>
...