Как проверить DOB от выпадающего в Javascript? - PullRequest
0 голосов
/ 28 марта 2019

Я создаю HTML-форму, и форма должна быть проверена с использованием Javascript.При регистрации возраст пользователя должен быть больше 16 лет, и я беру DOB из выпадающего списка.Теперь мой вопрос заключается в том, как проверить DOB с помощью javscript, и возраст пользователя не должен превышать 16

Я проверил DOB, как вы можете видеть в коде, но это неправильный способ проверки

<head>
    <script type="text/javascript">

        function myFunction() {
            var fname = document.getElementById("fname").value;
            var lname = document.getElementById("lname").value;
            var email = document.getElementById("email").value;
            var remail = document.getElementById("remail").value;
            var password = document.getElementById("password").value;


            var status = false;    
            var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;


            var x = document.getElementById("male").checked;
            var y = document.getElementById("female").checked;

            var year1 = document.getElementById("year").value;
            var month1 = document.getElementById("month").value;
            var day1 = document.getElementById("day").value;



            if(fname=="")
            {
                alert("Please Enter First Name");
            }

            else if(lname=="")
            {
                alert("Please Enter Last Name");
            }
            else if(email=="")
            {
                alert("Please Enter Email");
            }
            else if (document.myform.email.value.search(emailRegEx) == -1)
             {  
                      alert("Please enter a valid email address.");
            }
            else if(remail=="")
            {
                alert("Please Enter Re-enter Email");
            }

            else if(email != remail)
            {
                alert("Please Check Email");
            }
            else if(password=="")
            {
                alert("Please Enter Password");
            }
            else if (password.length<8) {
                alert("Please enter 8 digit password");
            }
            else if(day1==0)
            {
                alert("Please select Day")
            }
            else if(month1==0)
            {
                alert("Please select Month")
            }
            else if(year1==0)
            {
                alert("Please select year")
            }
            else if(year1>2003)
            {
                alert("You are not eligible. Age should be above 16...!!!")
            }

            else if(x!=true && y!=true)
            {
                alert("gender");
            }
            else
            {

            alert("Name = " + fname + "\n" + "Last Name = " + lname
                    + "\n" + "Email = " + email
                    + "\n" + "Password = " + password
                    + "\n" + "DOB = " + day1 + "-" + month1 + "-" + year1
                );
            }

        }

    </script>
</head>

<body> 

    <form name="myform">
    <h1>User Registration Form</h1>
    <input type="text" placeholder="First Name" id="fname">
    <input type="text" placeholder="Last Name" id="lname"><br><br>
    <input type="text"  name="email" placeholder="Email" id="email"><br><br>
    <input type="text" placeholder="Re-enter Email" id="remail"><br><br>
    <input type="password" placeholder="Enter Password" id="password"><br><br>

    Birthdate : <br> 
    <select id="day">
        <option value="0">day</option>
        <option value="1">1</option>
        <option value="2">2</option>
    ......

        <option value="31">31</option>
    </select>


    <select id="month">
        <option value="0">Month</option>
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>......          
        <option value="12">12</option>
    </select>


    <select id="year">
        <option value="0">Year</option>
        <option value="1996">1996</option>
        <option value="1997">1997</option>
        <option value="1998">1998</option>
        <option value="1999">1999</option>......
        <option value="2019">2019</option>
    </select>

Мужской Женский

Регистрация

Ответы [ 4 ]

1 голос
/ 28 марта 2019

Пожалуйста, попробуйте это,

ПРИМЕЧАНИЕ: попробуйте использовать средство выбора даты для выбора даты

function validateDOB(){
  if(document.getElementById('dob').value==''){
    alert('Please select a date')
    return false
  }
  var dob=document.getElementById('dob').value
  console.log(dob)
    var today = new Date();
    var birthDate = new Date(dob);
    var age = today.getFullYear() - birthDate.getFullYear();
    var m = today.getMonth() - birthDate.getMonth();
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) {
        age--;
    }
   if(age<16){
      alert('You are not eligible. Age should be above 16...!!!')
   }
}
<input type='date' id='dob'>
<button onclick='validateDOB()'>validate</button>
0 голосов
/ 28 марта 2019

Попробуй это,

function validateDOB(){
  if($('#dob').val()==''){
    alert('select dob')
    return false
  }
 var dob=$('#dob').val().replace('-', '')
 var age= moment().diff(moment(dob, 'YYYYMMDD'), 'years');
 
 if(age<16){
  console.log(age)
 alert('You are not eligible. Age should be above 16...!!!')
 }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<input type='date' id='dob'>
<button onclick='validateDOB()'>validate</button>
0 голосов
/ 28 марта 2019

код Javascript

    function myFunction() {
        var fname = document.getElementById("fname").value;
        var lname = document.getElementById("lname").value;
        var email = document.getElementById("email").value;
        var remail = document.getElementById("remail").value;
        var password = document.getElementById("password").value;


        var status = false;    
        var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;


        var x = document.getElementById("male").checked;
        var y = document.getElementById("female").checked;

        var birthday = document.getElementById("bday").value;



        if(fname=="")
        {
            alert("Please Enter First Name");
        }

        else if(lname=="")
        {
            alert("Please Enter Last Name");
        }
        else if(email=="")
        {
            alert("Please Enter Email");
        }
        else if (document.myform.email.value.search(emailRegEx) == -1)
         {  
                  alert("Please enter a valid email address.");
        }
        else if(remail=="")
        {
            alert("Please Enter Re-enter Email");
        }

        else if(email != remail)
        {
            alert("Please Check Email");
        }
        else if(password=="")
        {
            alert("Please Enter Password");
        }
        else if (password.length<8) {
            alert("Please enter 8 digit password");
        }
        else if(!birthday)           //To validate if birth date is empty
        {
            alert("Please select Birth Date")
        }
       else if(submitBday('bday')>16)//To check age greater than 16
        {
           alert("Age should be greater than 16");

        }


        else if(x!=true && y!=true)
        {
            alert("gender");
        }
        else
        {

        alert("Name = " + fname + "\n" + "Last Name = " + lname
                + "\n" + "Email = " + email
                + "\n" + "Password = " + password
                + "\n" + "DOB = " + day1 + "-" + month1 + "-" + year1
            );
        }

    }

   function submitBday(id) {

    var Bdate = document.getElementById(id).value;
    var Bday = +new Date(Bdate);
    var Q4A = ~~ ((Date.now() - Bday) / (31557600000));
    return Q4A;
    }

ваш HTML-код

 <form name="myform">
    <h1>User Registration Form</h1>
    <input type="text" placeholder="First Name" id="fname">
    <input type="text" placeholder="Last Name" id="lname"><br><br>
    <input type="text"  name="email" placeholder="Email" id="email"><br><br>
    <input type="text" placeholder="Re-enter Email" id="remail"><br><br>
    <input type="password" placeholder="Enter Password" id="password"><br><br>
    Birthdate :  <input type="date" name="bday" id="bday""> 

ссылка http://jsfiddle.net/j08691/exVh2/1/

0 голосов
/ 28 марта 2019

Поскольку ваши коды проверяли, выбрал ли пользователь год, месяц и дату рождения, вы просто вызываете мою функцию после проверки.

function isValidDate(year, month, date) {
 var dob = new Date(year, month-1, date);

 if (dob.getDate() != date)
   alert("Invalid date value");
 else if ((dob.getMonth() - month) != -1)
         alert("Invalid month value");
      else if (dob.getFullYear() != year)
         alert("Invalid year value");
}
...