[英]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.