Показать сообщение отдельно
  #1 (permalink)  
Старый 31.10.2016, 23:16
Интересующийся
Отправить личное сообщение для Goret Посмотреть профиль Найти все сообщения от Goret
 
Регистрация: 10.10.2016
Сообщений: 10

Переход на другую страницу с учетом регулярных выражений
Добрый день. Необходимо заполнить некую форму, каждый пункт которой проверяется на правильность ввода, если все поля заполнены правильно, то происходит переход на следующую страницу. Вопрос в том, что при проверке правильности меня просто не пускает на др страницу.
1 файл НТМЛ
<!DOCTYPE html>

<html lang="en" xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8" />
    <title></title>
    <link rel="stylesheet" type="text/css" href="Style1.css"/>
    <script src="Script1.js" type="text/javascript"></script>
</head>
<body>
    <!--<img src="images/nice-clouds.jpg" alt="Облака"/>-->
    <div id="page" >
        <form action="Exam_2.html" method="post" enctype="multipart/form-data" >
            <fieldset title="Регистрационная форма">
                <legend title="Reg info">Регистрационная форма</legend>
                <p>
                    ФИО
                    <input type="text" name="fio" value="" />
                </p>
                <p>
                    Адрес
                    <input type="text" name="adress" value="" />
                </p>
                <p>
                    E-mail
                    <input type="text" name="e-mail" value="" maxlength="30" />
                </p>
                <p>
                    Телефон
                    <input type="text" name="phone" value="" maxlength="13" />
                </p>
                <input type="reset" name="Reset" value="Очистить" />
                <input type="submit" name="Submit" value="Сохранить" />
            </fieldset>
        </form>
    </div>
</body>
</html>


1 файл Javascript
// JavaScript source code
window.onload = function () {
    document.forms[0].onsubmit = Verify;
}

function Verify() {
    var flag = false;
    var fio_tmpl = /(^[A-Z][a-z]+\s(([A-Z]\.){2}|[A-Z]{2})|^[А-Я][а-я]+\s(([А-Я]\.){2}|[А-Я]{2})){1}\s*$/;
    var fio = document.forms[0].elements["fio"].value;

    if (fio.search(fio_tmpl) == -1) {
        flag = false;
        alert("Неверный формат ФИО:\nИванов ИИ либо Иванов И.И.");
        document.forms[0].elements["fio"].style.background = "red";
    }
    else {
        flag = true;
        document.forms[0].elements["fio"].style.background = "white";
    }
    var adress_tmpl = /^([A-Za-z0-9\s\.,-\№]+)|([А-Яа-я0-9\s\.,-\№]+)$/;
    //var adress_tmpl = /^[A-Za-z]{1,50}|[А-Яа-я]{1,50}$/
    var adress = document.forms[0].elements["adress"].value;

    if (adress.search(adress_tmpl) == -1) {
        flag = false;
        alert("Неверный формат адреса:\nг.Киев, ул.Киевская, 195, кв.18");
        document.forms[0].elements["adress"].style.background = "red";
    }
    else {
        flag = true;
        document.forms[0].elements["adress"].style.background = "white";
    }

    var email_tmpl = /^[A-Za-z](\w|-){2,20}@\w\w+\.[a-z]{2,3}\s*$/;
    var email = document.forms[0].elements["e-mail"].value;

    if (email.search(email_tmpl) == -1) {
        flag = false;
        alert("Неверный формат e-mail:\nlogin@mail.com");
        document.forms[0].elements["e-mail"].style.background = "red";
    }
    else
        document.forms[0].elements["e-mail"].style.background = "white";

    var phone_tmpl = /^0[1-9]{2}\-[0-9]{3}(\-[0-9]{2}){2}$/;
    var phone = document.forms[0].elements["phone"].value;

    if (phone.search(phone_tmpl) == -1) {
        flag = false;
        alert("Неверный формат телефона:\n050-111-11-11");
        document.forms[0].elements["phone"].style.background = "red";
    }
    else
        document.forms[0].elements["phone"].style.background = "white";

    if (flag) {
        alert("Вы ввели все поля корректно!\nСпасибо!");
    }

    return false; // отмена вызова стандартного обработчика onsubmit
}


Получается эта строка return false; меня не пускает, но без нее не будет работать правильность ввода данных.
Буду очень благодарен за помощь.
Ответить с цитированием