2017-06-13 1 views
0

J'ai un problème ennuyeux. Dans mon cas, ça n'a pas d'importance, mais c'est assez agaçant.jQuery datepicker setdate ne fonctionne qu'après un deuxième clic

J'ai des boutons radio, qui vont définir la date de la date de fin. Voici mon code. Donc, lorsque la valeur .radios est 6, le champ Date de fin sera défini sur une semaine plus tard. Mais si d'autres valeurs alors il devrait donner la même date que la date de début. Par exemple, je choisis le 13 juin sur le champ start, il fixera la date au 13 juin, mais si je choisis id = 6, la date de fin sera le 20 juin. Cependant, il reste 20ème après que j'ai cliqué sur les autres, et il devient 13 après la deuxième sélection sur les autres.

Que dois-je faire de mal dans mon code?

+0

Pourriez-vous s'il vous plaît ajouter une fiddle' '' snippet' ou de reproduire le problème? –

+0

s'il vous plaît créer un exemple de travail (extrait) de votre problème –

Répondre

0

Définir minDate valeur de l'option avant setDate appel de méthode.

$("#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

+0

Merci l'homme! Ça marche! Si facile. – ayok