问题在于:
$(".ageclass1").val(age);
因为我们有很多“.ageclass1”,而浏览器不知道要更改哪一个,然后全部更改(^ ^;)。所以我们必须用这样的方法来改变这条线:
$(this).next().val(age);
这是新密码
$(document).on('change', '.dateholder1', function(e){
var dob = new Date($(this).val());
//var dob = e.date;
var today = new Date();
var age = Math.floor((today-dob) / (365.25 * 24 * 60 * 60 * 1000));
$(this).next().val(age);
});
$(".addDate").click(function(){
$("#appenddiv").append($("#appendContent").html() + "<div class='clearfix'></div>");
});
这是新的jsfiddle:
http://jsfiddle.net/5h1rpjqs/5/
$(document).on('change', '.dateholder1', function(e){
var dob = new Date($(this).val());
//var dob = e.date;
var today = new Date();
var age = Math.floor((today-dob) / (365.25 * 24 * 60 * 60 * 1000));
$(this).next().val(age);
});
$(".addDate").click(function(){
$("#appenddiv").append($("#appendContent").html() + "<div class='clearfix'></div>");
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<h3>This is working demo</h3><br>
<input type="text" name="date" class="dateholder1" placeholder="yyyy/mm/dd">
<input type="text" name="age" class="ageclass1" placeholder="age">
<span class='addDate'>Add</span>
<br><br>
<div id="appenddiv">
</div>
<div style="display:none" id='appendContent'>
<input type="text" name="date" class="dateholder1" placeholder="yyyy/mm/dd">
<input type="text" name="age" class="ageclass1" placeholder="age"><br>
<span>How Can i Calculate age here On Change dateHolder</span>
</div>