Если оператор не работает + javascript перезаписать значение (форма) - PullRequest
0 голосов
/ 20 апреля 2020

В моем коде я пытаюсь проверить, находится ли число, введенное в форму, в пределах диапазона месяцев (Мос. 1-12). Всякий раз, когда я пытаюсь ввести код, он всегда пропускает , если ситуация и переходит прямо к else = Пожалуйста, введите действительный номер дня. вместо.

<html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Index</title>

        <script>
            var months = ["January","February","March","April","May","June","July","August","September","October","November","December"]

            months[1]="January"
            months[2]="February"
            months[3]="March"
            months[4]="April"
            months[5]="May"
            months[6]="June"
            months[7]="July"
            months[8]="August"
            months[9]="September"
            months[10]="October"
            months[11]="November"
            months[12]="December"

            function checkDOB() {

                var day = document.forms["myForm"]["inputDay"].value;
                var month = document.forms["myForm"]["inputMonth"].value;
                var year = document.forms["myForm"]["inputYear"].value;
                var numTimes = 0


                if (day <= 31 && day >= 1) {
            alert("Correct.")
                        return true;
            } else {
                    alert("Please enter valid day number.")
                        return false;
                }
                const currentYear=2018

                var day= parseInt(form.inputDay.value, 10)
                document.getElementById('finaldob').value = "month"+"day"+"year";
            }
        </script>
    </head>

    <body>
    <h3>Enter your basic info</h3>

    <form>
        <p>Days : <input type="text" name="inputDay" SIZE="2" id="fday"> </p>
          <p>Months : <input type="text" name="inputMonth" SIZE="2"> </p>
          <p>Years : <input type="text" name="inputYear" SIZE="4"> </p>
          <p><input type="button" value="Update" onclick="checkDOB()"> <input type="reset" value="Reset"> </p>
        </form>
    </body>
</html> ```

1 Ответ

2 голосов
/ 20 апреля 2020

Это то, что вы можете искать // проверка даты и месяца // проверка возраста по текущему году клиента

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>Index</title>

        <script>
            // try write your arrays this way don't initilize one by one if you already know the elements inside
            let months = ["January","February","March","April","May","June","July","August","September","October","November","December"];

            function checkDOB() {

                var day = document.forms["myForm"]["inputDay"].value;
                var month = document.forms["myForm"]["inputMonth"].value;
                var year = document.forms["myForm"]["inputYear"].value;
                var numTimes = 0
								
  							//day & mnth validator
                if( (day<=31 && day>=1) && (month<=12 && month>=1)){
                	//check age 18 or over 
                  let currentYear = new Date().getFullYear();
                 	
                  if((currentYear-year)>=18){
                  	//concatenate dob with answer. arrays start from 0 so we need to subtract one to get correct month 
                    let dob = months[(month)-1]+'/'+day+'/'+year;
                    
                    document.getElementById('finaldob').value = dob;
                  
                  }else{
                  	alert("you have to be atleast 18 years old");
                    //clear form
                    resetForm();
                  }
                  
                }else{
                	alert("please enter right format");
                   //clear form
                    resetForm();
                } 
            }
            
            function resetForm(){ document.getElementById("myForm").reset();}
  
        </script>
    </head>

    <body>
    <h3>Enter your details</h3>
    <p>(then press the update button)</p>
    
    <form id="myForm">
         <p>Day (1-31): <input type="text" name="inputDay"  id="fday" required> </p>
          <p>Month (1-12): <input type="text" name="inputMonth" required> </p>
          <p>Year (eg. 1973): <input type="text" name="inputYear" required> </p>
          <p><input type="button" value="Update" onclick="checkDOB()"> <input type="button" onclick=" resetForm()" value="Clear"> </p>
          <p>Date of Birth: <input type="text" name="fullDOB" id="finaldob" value=""> </p>
        </form>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...