简体   繁体   English

为什么我的Javascript代码仅在第一次单击“提交”按钮时才计算我的年龄?

[英]Why does my Javascript code only calculate my age only on the first click of the submit button only?

I have a java-script code which calculates a person age. 我有一个Java脚本代码来计算一个人的年龄。 A user will enter his/her identity number in an input field and clicks submit. 用户将在输入字段中输入他/她的身份证号码,然后单击提交。 then the java-script code will calculate their age. 然后Java脚本代码将计算其年龄。

i do not understand why the java-script code does not calculate a different age when i change the identity number. 我不明白为什么更改身份编号时Java脚本代码无法计算出不同的年龄。

eg identity number 1: 7810104455082, identity number 2: 8001013355088 and identity number 3: 9502242235086 例如,身份号码1:7810104455082,身份号码2:8001013355088和身份号码3:9502242235086

my html code below: 我的HTML代码如下:

<input id="IDNumber" type="text" name="idnumber" placeholder="ID number" />

<input onclick="return validateID();" id="submit" type="submit" value="Submit" />

<p id="demo">demo</p> <p id="demo2">demo2</p>

<div id="screen" style="width:600px; height:400px; background-color:gray;"></div>
<button id="display">Display</button>

my javascript code below: 我的JavaScript代码如下:

<script>


function validateID() {   

    var ex = /^(((\d{2}((0[13578]|1[02])(0[1-9]|[12]\d|3[01])|(0[13456789]|1[012])(0[1-9]|[12]\d|30)|02(0[1-9]|1\d|2[0-8])))|([02468][048]|[13579][26])0229))(( |-)(\d{4})( |-)(\d{3})|(\d{7}))/;


  var idNumber = document.getElementById("IDNumber").value;
  if (ex.test(idNumber) == false) {
    // alert code goes here
    document.getElementById("demo").innerHTML = "Please supply a valid ID number" ;
    alert('Please supply a valid ID number');
    return false;
  }

    //Pull out Year and Month and Day for IDNumber
    var tempDate = new Date(idNumber.substring(0, 2), idNumber.substring(2, 4) - 1, idNumber.substring(4, 6));

    var id_date = tempDate.getDate();
    var id_month = tempDate.getMonth();
    var id_year = tempDate.getFullYear();
    // set variable of fullDate to insert in math calculation
    var fullDate = id_year + "/" + (id_month + 1) + "/" + id_date;

    //math time calculation to give mil and convert to years
    var d1 = new Date(); //"now"
    var d2 = new Date(fullDate)  // some date
    var diff = Math.abs(d1-d2);  // difference in milliseconds

    var yeardiff = diff / 31536000000;
  document.getElementById("demo").innerHTML = "The Age is " + Math.round(yeardiff);


}
</script>

移除onclick上的return

<input onclick="validateID();" id="submit" type="submit" value="Submit" />

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM