2017-08-26 38 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