あなたはchange
で計算を取得するために、適切なbirthdate
と.age
を取得するために$(this)
を使用することができます。参照のために下のスニペットを確認してください。
$(document).ready(function() {
$(".birthdate").change(function() {
var value = $(this).val();
var dob = new Date(value);
var today = new Date();
var age = Math.floor((today - dob)/(365.25 * 24 * 60 * 60 * 1000));
if (isNaN(age)) {
age = 0;
} else {
age = age;
}
$(this).closest('.input-group').next('.input-group').find('.age').val(age);
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:92% ">Date of Birth:</span>
<input type="date" class="form-control birthdate" aria-describedby="sizing-addon1" style="width:153.8%;" name="birthdate" required="">
</div>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:84% ">Age:</span>
<input type="text" class="form-control age" aria-describedby="sizing-addon1" style="width:140%;" placeholder="Enter age" name="age" readonly="">
</div>
<hr>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:92% ">Date of Birth:</span>
<input type="date" class="form-control birthdate" aria-describedby="sizing-addon1" style="width:153.8%;" name="birthdate" required="">
</div>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:84% ">Age:</span>
<input type="text" class="form-control age" aria-describedby="sizing-addon1" style="width:140%;" placeholder="Enter age" name="age" readonly="">
</div>
アップデート:か、スニペット以下のすべての.birthdate
のチェックをループにしたい場合。
$(document).ready(function() {
$('.calcBtn').click(function() {
$(".birthdate").each(function() {
var value = $(this).val();
var dob = new Date(value);
var today = new Date();
var age = Math.floor((today - dob)/(365.25 * 24 * 60 * 60 * 1000));
if (isNaN(age)) {
age = 0;
} else {
age = age;
}
$(this).closest('.input-group').next('.input-group').find('.age').val(age);
});
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:92% ">Date of Birth:</span>
<input type="date" class="form-control birthdate" aria-describedby="sizing-addon1" style="width:153.8%;" name="birthdate" required="">
</div>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:84% ">Age:</span>
<input type="text" class="form-control age" aria-describedby="sizing-addon1" style="width:140%;" placeholder="Enter age" name="age" readonly="">
</div>
<hr>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:92% ">Date of Birth:</span>
<input type="date" class="form-control birthdate" aria-describedby="sizing-addon1" style="width:153.8%;" name="birthdate" required="">
</div>
<div class="input-group input-group-sm">
<span class="input-group-addon" id="sizing-addon1" style="width:84% ">Age:</span>
<input type="text" class="form-control age" aria-describedby="sizing-addon1" style="width:140%;" placeholder="Enter age" name="age" readonly="">
</div>
<hr>
<input type="button" class='calcBtn' value="Calculate">
使用 'dob.getTime() - Date.now()'の代わりに。正しいMathを実行するにはミリ秒のフォーマットが必要です。 – PHPglue
「残念ながら、最初の行でのみ動作します。」とはどういう意味ですか?私は本当にあなたの質問を得ることができません。 – urvashi
@urvashiはい、PHP、SQLを使用してHTMLをループします。私の問題は、自動的に年齢が最初の行だけで計算されている計算です。 – mojoe