【コピペで使える】フォームへの生年月日入力でリアルタイムに年齢を表示するサンプルコード

今回はフォームで生年月日を入力した際にリアルタイムで年齢を計算して表示するスクリプトコードを紹介します。

サンプルコード


<html>
<head>
<meta charset="utf-8">
<script>
window.addEventListener('DOMContentLoaded', function(){
  var birthday = document.getElementById("birthday"); // 生年月日取得
  birthday.addEventListener("change",function(){
    let birthday = this.value.split('-'); // 年月日の分割
    var age = getAge(birthday); // 生年月日・年齢変換
    document.getElementById('age').innerHTML = ""; // 年齢表示削除
    document.getElementById('age').innerHTML = age + "歳"; // 年齢表示追加
  });
  birthday.addEventListener("input",function(){
    let birthday = this.value.split('-'); // 年月日の分割
    var age = getAge(birthday); // 生年月日・年齢変換
    document.getElementById('age').innerHTML = ""; // 年齢表示削除
    document.getElementById('age').innerHTML = age + "歳"; // 年齢表示追加
  });
});
function getAge(birthday){
  var today = new Date();
  var thisYearsBirthday = new Date(today.getFullYear(), birthday[1]-1, birthday[2]);
  var age = today.getFullYear() - birthday[0];
  if(today < thisYearsBirthday){
    age--;
  }
  return age;
}
</script>
</head>
<body>
<form method="post" action="">
<input type="date" id="birthday" name="birthday" class="form-control" value="">
<span id="age"></span>
</form>
</body>
</html>

まとめ

是非ご活用ください。