我有一个恼人的问题。在我的情况下它没关系,但它很烦人。
我有单选按钮,用于设置完成日期的日期。这是我的代码。
$('.radios').each(function(i,e){
$(e).change(function(){
var id = parseInt($(e).val());
var start = $('#start').datepicker('getDate');
if(id == 6)
start.setDate(start.getDate()+7);
$('#finish').datepicker('setDate', start);
$('#finish').datepicker('option', 'minDate', start);
});
});
因此,当.radios值为6时,它会将完成字段的日期设置为一周之后。但是,如果其他值,那么它应该给出与开始日期相同的日期。
例如,我在开始字段中选择13月6日,它将日期设置为6月13日,但如果我选择id = 6,则完成日期将是6月20日。然而,在我点击其他人之后它保持在第20位,在第二次选择之后它变为13。
我的代码出了什么问题?
答案 0 :(得分:0)
在minDate
方法调用之前设置setDate
选项值。
$( "#start, #finish" ).datepicker();
$('.radios').change(function(){
var id = parseInt($(this).val());
var start = $('#start').datepicker('getDate');
if(id == 6) start.setDate(start.getDate()+7);
$('#finish').datepicker('option', 'minDate', start);
$('#finish').datepicker('setDate', start);
});
<script src="//code.jquery.com/jquery-1.12.4.js"></script>
<script src="//code.jquery.com/ui/1.12.1/jquery-ui.js"></script>
<p>Date of start: <input type="text" id="start" value="06/03/2017"></p>
<p>Date of finish: <input type="text" id="finish"></p>
<input type="radio" name="diff" class="radios" value="1">1
<input type="radio" name="diff" class="radios" value="2">2
<input type="radio" name="diff" class="radios" value="3">3
<input type="radio" name="diff" class="radios" value="4">4
<input type="radio" name="diff" class="radios" value="5">5
<input type="radio" name="diff" class="radios" value="6">6