我有
<input type="text" name="age" value="" enabled="false">` paired with a `<input type="date" name="birthdate">
我想将年龄文本框值设置为当前日期与用户输入日期的差异,以使用javascript或jquery自动获取日期
答案 0 :(得分:0)
在标记中进行两处小改动
<input type="text" name="age" value="" disabled="true" id="age"> //observe that i have replaced enabled=false
<input type="date" name="birthdate" id="birthdate"> //observe that i have given an id attribute to it
现在你可以获得年龄
var date = new Date();
var birthdate = new Date( document.getElementById( "birthdate" ).value );
alert( "age is " + ( date.getFullYear() - birthdate.getFullYear() ) );
将此值设置为年龄文本框
document.getElementById( "age" ).value = date.getFullYear() - birthdate.getFullYear() ;
更简单的jquery版本
var date = new Date();
var birthdate = new Date( $( "#birthdate" ).val() );
var age = date.getFullYear() - birthdate.getFullYear();
$( "age" ).val( age ) ;
答案 1 :(得分:0)
如果你正在使用&#39; vanilla&#39; JS。然后你可以解析在DOB中输入的日期。
function setAge(e){
var bday = new Date(Date.parse(e.target.value));
var today = new Date()
document.getElementsByName('age')[0].value = today.getFullYear() - bday.getFullYear();
}
您可以为生日输入设置onchange事件。
<input type="date" name="birthdate" onchange="setAge(event)">
小提琴:https://jsfiddle.net/j4dotd9d/1/
希望有所帮助!
答案 2 :(得分:0)
试试这个:您可以计算用户选择的出生日期变化的年龄。在时间之间取差异然后计算年和月。 注意 - 计算的年份和月份是近似值,OP应相应地更改代码。
$(function(){
var calculateAge = function(time){
var months = Math.round(time/(24*60*60*1000*30));
//alert(months);
var years = parseInt(months / 12);
//alert(years);
months = months % 12;
return years +" yrs and " + months + " months";
};
$('input[name="birthdate"]').change(function(){
var birthDate = new Date($(this).val()).getTime();
var presentDate = new Date().getTime();
//alert(birthDate);
//alert(presentDate);
var age = presentDate - birthDate;
$('input[name="age"]').val(calculateAge(age));
});
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<input type="text" name="age" value="" enabled="false">
<br/>paired with a <input type="date" name="birthdate">
&#13;
答案 3 :(得分:0)
以下代码仅使用年份而不是月份和日期,请重写
这是HTML代码
<input type="text" id="age" value=""/>
<input type="date" id="current" onchange="javaScript:age()"/>
这是javaScript
function age() {
var curr = document.getElementById('current').value;
var split = curr.split("-", 1);
var newsplit = parseInt(split);
var date = new Date();
var newcurr= parseInt(date.getFullYear());
var age = newcurr - newsplit;
document.getElementById('age').setAttribute('value', age);
}