我有以下代码。如果我使用某些值,它工作正常,但是当我从变量(var 持续时间)传递值时,它会显示错误的结果。
$('#startdate, #enddate').datepicker({
format: 'yyyy-mm-dd',
autoclose: true,
});
$('#duration').change(function() {
var date2 = $('#startdate').datepicker('getDate');
var duration = $(this).val();
//alert(duration);
date2 = new Date(date2);
date2.setMonth(date2.getMonth() + duration);
$('#enddate').datepicker('setDate', date2);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet" />
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.1/js/bootstrap-datepicker.min.js"></script>
<link href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datepicker/1.5.1/css/bootstrap-datepicker.css" rel="stylesheet" />
<input class="form-control" type="date" name="startdate" id="startdate">
<select name="duration" id="duration">
<option>Select month</option>
<option value="1">1</option>
<option value="3">3</option>
<option value="6">6</option>
<option value="12">12</option>
<option value="24">24</option>
<option value="36">36</option>
</select>
<input class="form-control" type="date" name="enddate" id="enddate">
只需将整数解析设置为持续时间变量即可。
var duration = parseInt($(this).val());
就这样