如何使用javascript / jquery设置age文本框的值

时间:2016-01-21 05:03:09

标签: javascript jquery

我有

<input type="text" name="age" value="" enabled="false">` paired with a `<input type="date" name="birthdate">

我想将年龄文本框值设置为当前日期与用户输入日期的差异,以使用javascript或jquery自动获取日期

4 个答案:

答案 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应相应地更改代码。

&#13;
&#13;
$(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;
&#13;
&#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);
}