2017-07-29 127 views
1

我想使用日期選擇器在我的表單中自動填充我的年齡。當我使用日期選擇器將生日放在出生日期表單上時,它應該自動填充表格中的年齡,然後它會自動確定其年齡。例如,我的生日是1996年10月17日,今天是2017年7月30日,因此表單會自動填充,如下所示: 20年9個月13天。如何通過自動填充表單來獲得年,月和日的年齡?

<!--html form--> 
<input type="date" name="birthday"> 10/17/1996 
<input type="text" name="Years"> 20 years 
<input type="text" name="m"> 9 months 
<input type="text" name="d"> 13 days 

<!--script right here--> 
function getAge(dateString) { 
    var today = new Date(); 
    var birthDate = new Date(dateString); 
    var Years = today.getFullYear() - birthDate.getFullYear(); 
    var m = today.getMonth() - birthDate.getMonth(); 
    if (m < 0 || (m === 0 && today.getDate() < birthDate.getDate())) { 
     Years--; 
    } 
    return Years; 
} 
+0

您應該包括一些關於什麼是不工作的。你得到了什麼結果? – Difster

回答

1

你可以像下面: -

$(document).ready(function(){ 
 
    $('input[type="date"]').on('mouseout',function(){ 
 
    getAge($(this).val()); 
 
    }); 
 

 
}); 
 
function getAge(dateString) { 
 
    if(dateString!==''){ 
 
    d1 = new Date(); 
 
    d2 = new Date(dateString); 
 
    diff = new Date(
 
     d1.getFullYear()-d2.getFullYear(), 
 
     d1.getMonth()-d2.getMonth(), 
 
     d1.getDate()-d2.getDate() 
 
    ); 
 
    
 
    $('input[name="Years"]').val(diff.getYear()+" Year(s)"); 
 
    $('input[name="m"]').val(diff.getMonth()+" Month(s)"); 
 
    $('input[name="d"]').val(diff.getDate()+" Day(s)"); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<input type="date" name="birthday"><br/><br/> 
 
<input type="text" name="Years"><br> 
 
<input type="text" name="m"><br> 
 
<input type="text" name="d"><br>

+0

它工作!非常感謝。順便說一句,我如何自動輸入HTML表單?按年份,月份和年齡分開?順便說一句thankyou我會盡力找到一種方法:) –

+0

@JayzdeVera意味着你想輸出它在樹不同的輸入字段? –

+0

是的我該怎麼做? document.form.write?這樣的事情 –