Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #31 (permalink)  
Старый 05.02.2020, 15:41
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 137

Кажется получилось сделать валидацию к постраничной форме. Только вот у меня проблема с датой. Никак не получается составить регулярное выражение такого формата дд.мм.гггг. Как сделать проверку на вводимую дату?
<!DOCTYPE html>
<html>
<meta charset="utf-8">
<head>
</script>
  <style type="text/css">
  #step2,#step3,#step4,#step5{
        display: none;
       }

  </style>
<script src="http://code.jquery.com/jquery-1.9.1.js"></script>
<script src="http://jqueryvalidation.org/files/dist/jquery.validate.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.maskedinput/1.4.1/jquery.maskedinput.min.js"></script>

  <script>
$.validator.addMethod("minlenghtname", function (value, element) {
        return /^[a-zа-я]+$/i.test(value);
    }," не соответствует формату");

$.validator.addMethod("requiredname", function (value, element) {
        return value.length > 2;
    }," Заполните это поле!!!");
$.validator.addMethod("requirednum", function (value, element) {
        return /^\d+$/i.test(value);
    }," только числа");
$.validator.addMethod("requiredemail", function (value, element) {
        return /^[a-zA-Z0-9._-]+@[a-zA-Z0-9-]+\.[a-zA-Z.]{2,5}$/i.test(value);
    }," Неправильный email");
$.validator.addMethod("checkMask", function(value, element) {
     return /\+\d{1}\(\d{3}\)\d{3}-\d{4}/g.test(value); 
},"Не верный формат телефона (+7(999)999-9999)");
$.validator.addMethod("checkData", function(value, element) {
     return value.match(/^\d\d?\.\d\d?\.\d\d\d\d$/);
},"Please enter a date in the format dd.mm.yyyy.");
    


$(function () {
$("#Phone").mask("+7(999)999-9999");
$("#date").mask("99.99.9999",{placeholder:"dd.mm.yyyy"});

 var v = $("#commentForm").validate({
        rules: {
            fname: {
                requiredname: true,
                minlenghtname: true
            },
            lname: {
                requiredname: true,
                minlenghtname: true
            },
            num1:{
                requirednum:true
            },
            num2: {
                requirednum:true
            },
            city: {
               minlenghtname: true
            },
            country:{
               minlenghtname: true
            },
            email:{
               requiredemail: true
            },
            Phone:{
              checkMask: true
            },
            date:{
              checkData: true
            }
        },
        submitHandler: function() {
                alert("Submitted, thanks!");
            }
        
    })
    
    $(".next1").click(function() {
            if (v.form()) {
                $("#step2").show();
                $("#step1").hide();
                 $("#progressText").html("Шаг 2 из 4");
                
            }
      });
     $(".next2").click(function() {
            if (v.form()) {
                $("#step3").show();
                $("#step2").hide();
                $("#progressText").html("Шаг 3 из 4");
            }
        });
     $(".next3").click(function() {
            if (v.form()) {
                $("#step4").show();
                $("#step3").hide();
                $("#progressText").html("Шаг 4 из 4");
                
            }
        });
});
  </script>
</head>
<body>
<div id="progressText">Шаг 1 из 4</div>
<form class="cmxform" id="commentForm" method="get" action="">
<ul id="stepForm">
<li id="step1">
       <p><label>Имя:</label><input class="left" id="fname" name="fname"></p>
        <p><label>Фамилия:</label><input class="left" id="lname" name="lname"></p>
        <p class="buttonWrapper">
        <input name="formNext1" type="button" class="next1 nextbutton" value="Next" alt="Next" title="Next">
            </p>
  </li>
  <li id="step2">
  <p><label>Номер 1:</label><input class="left" id="num1" name="num1" maxlength="11"></p>
        <p><label>Номер 2:</label><input class="left" id="num2" name="num2" maxlength="16" ></p>
  <p class="buttonWrapper">
        <input name="formNext1" type="button" class="next2 nextbutton" value="Next" alt="Next" title="Next">
            </p>
  </li>
  <li id="step3">
  <p><label>Город:</label><input class="left" id="city" name="city"></p>
        <p><label>Страна:</label><input class="left" id="country" name="country"></p>
        <input name="formNext1" type="button" class="next3 nextbutton" value="Next" alt="Next" title="Next">
  </li>
   <li id="step4">
      <p><label>Email адрес:</label><input name="email" id="email" class="email" title="Неправильный email"></p>
      <p><label>Номер телефона:</label><input name="Phone" id="Phone" class="phone" maxlength="254" title="Введите телефон"></p>
      <p><label>Дата:</label>
          <input type="text" name="date" id="date" class="date" title="Введите дату"></p>
      <input type="submit" class="submitbutton" value="Submit">
   </li>

</ul>
</form>
</center>

</body>
</html>

Последний раз редактировалось Katy93, 05.02.2020 в 15:44.
Ответить с цитированием
  #32 (permalink)  
Старый 05.02.2020, 15:49
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,068

Сообщение от Katy93
регулярное выражение такого формата дд.мм.гггг
https://stackoverflow.com/questions/...mat-dd-mm-yyyy
Ответить с цитированием
  #33 (permalink)  
Старый 06.02.2020, 11:29
Кандидат Javascript-наук
Отправить личное сообщение для Katy93 Посмотреть профиль Найти все сообщения от Katy93
 
Регистрация: 28.12.2018
Сообщений: 137

Получилось но не совсем так как я хотела.
Ввожу я дату например 06.02.2020, так работает. Потом пытаюсь ввести 30.02.2020 пишет "введите дату". Тогда я начинаю проверять разные числа первое число если ввожу 01-12 ошибка исчезает во втором числе допустимо от 01 до 31. Вообщем я так поняла что вместо даты которую я хотела dd.mm.yyyy получилось вот такая mm.dd.yyyy. т.е первый месяц, потом число потом год. Как это исправить, чтобы первое было число потом месяц, год.
$.validator.addMethod("checkData", function(value, element) 
{
    return /^\d{1,2}\.\d{1,2}\.\d{4}$/i.test(value);
},"Введите дату.");


....
$("#Phone").mask("+7(999)999-9999");
$("#date").mask("99.99.9999",{placeholder:"dd.mm.yyyy"});
....
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AngularJS: вычисление динамических полей в таблице factory_girl Библиотеки/Тулкиты/Фреймворки 0 13.06.2015 19:28
проверка полей при отправке all4me1982 Общие вопросы Javascript 6 17.03.2015 14:02
Проверка полей serrrgggeee Javascript под браузер 0 08.10.2014 15:16
Проверка полей отправляемой формы. denisOgr jQuery 6 18.10.2010 19:40
проверка полей формы!!!! DENAT Общие вопросы Javascript 0 05.06.2008 22:14