2017-08-26 70 views
1

使用此代码检查用户是否超过18岁。但该功能仅警告“你不是18+”。也有在控制台该功能没有提醒某事

没有错误例如: - 23/12/1500 23/12/2008

var dob = document.getElementById("dob").value; 
var jsdate = new Date(dob); 
var jsdatearray = jsdate.toString().split("/"); 
var day = jsdatearray[0]; 
var month = jsdatearray[1]; 
var year = jsdatearray[2]; 

var nowdate = new Date(); 
nowdate.setFullYear(year, month - 1, day); 

var maxDate = new Date(); 
maxDate.setYear(maxDate.getYear() - 18); 

if (maxDate < nowdate) { 
    alert('you are 18+'); 
} 
else { 
    alert('you are not 18+'); 
} 
+1

'document.getElementById(“dob”)。value的值是什么? –

+0

在调用上述函数之前,DOM需要完全加载,是吗? – Vivick

+0

@MohamedAbbas对不起,但它总是提醒你不是18+ – jolly

回答

0

有代码是几件事情了。首先,日期未正确导入到Javascript中。其次,检查日期的条件是落后的。下面的代码应该更好。

var dob = document.getElementById("dob").value; 
var jsdatearray = dob.split("-"); 
var year = jsdatearray[0]; 
var day = jsdatearray[1]; 
var month = jsdatearray[2]; 

var nowdate = new Date(); 
nowdate.setFullYear(year, month - 1, day); 

var maxDate = new Date(); 
maxDate.setYear(maxDate.getYear() - 18); 
console.log(maxDate < nowdate); 

if (maxDate > nowdate) { 
    alert('you are 18+'); 
} 
else { 
    alert('you are not 18+'); 
} 
+0

PLZ upvote the qustion – jolly