2014-04-22 7 views
1

J'ai 2 champs de date dans un formulaire en utilisant jquery datepicker. Cliquer sur le premier champ et choisir une date remplira automatiquement le deuxième champ date avec la date choisie de datefield1 + un jour - Tout fonctionne correctement.jquery datepicker focus événement

Mais si je clique sur le bouton de soumission du formulaire, la date du second champ de date (qui est rempli automatiquement) n'est pas transmise, cela signifie qu'il est vide. Mais si je clique manuellement sur le second champ date et que je choisis une date via datepicker, la date est correctement envoyée dans le formulaire.

Est-il possible de définir le deuxième champ de date (rempli automatiquement) comme cliqué ou quelque chose comme ça, de sorte que la deuxième date est soumise correctement?

Voici le script:

$(function() { 

    $(document).ready(function() { 

     $("#dt1").datepicker({ 
      dateFormat: "dd-M-yy", 
      minDate: 0, 
      onSelect: function (date) { 
       var date2 = $('#dt1').datepicker('getDate'); 
       date2.setDate(date2.getDate() + 1); 
       $('#dt2').datepicker('setDate', date2); 
       //sets minDate to dt1 date + 1 
       $('#dt2').datepicker('option', 'minDate', date2); 
      } 
     }); 
     $('#dt2').datepicker({ 
      dateFormat: "dd-M-yy", 
      onClose: function() { 
       var dt1 = $('#dt1').datepicker('getDate'); 
       console.log(dt1); 
       var dt2 = $('#dt2').datepicker('getDate'); 
       if (dt2 <= dt1) { 
        var minDate = $('#dt2').datepicker('option', 'minDate'); 
        $('#dt2').datepicker('setDate', minDate); 
       } 
      } 
     }); 
    }); 

Cordialement Schani

+0

Hey, j'ai créé le jsFiddle pour vous http://jsfiddle.net/9dr4p/, onclick du bouton soumettre, je suis en mesure d'obtenir les deux valeurs (Observe la console développeur) Obtenir comme: som.php? dt1 = 23-Apr-2014 & dt2 = 24-Apr-2014 –

+0

Salut Sam, merci de créer un violon pour moi. Vraiment, même si le deuxième champ n'est pas cliqué? – user3559246

Répondre

0

trouvé une solution par moi-même. Simplement mais $ ('# dt2') .focus(); dans la première fonction:

$("#dt1").datepicker({ 
     dateFormat: "dd-M-yy", 
     minDate: 0, 
     onSelect: function (date) { 
      var date2 = $('#dt1').datepicker('getDate'); 
      date2.setDate(date2.getDate() + 1); 
      $('#dt2').datepicker('setDate', date2); 
      //sets minDate to dt1 date + 1 
      $('#dt2').datepicker('option', 'minDate', date2); 
$('#dt2').focus(); 
     } 
    }); 
    $('#dt2').datepicker({ 
     dateFormat: "dd-M-yy", 
     onClose: function() { 
      var dt1 = $('#dt1').datepicker('getDate'); 
      console.log(dt1); 
      var dt2 = $('#dt2').datepicker('getDate'); 
      if (dt2 <= dt1) { 
       var minDate = $('#dt2').datepicker('option', 'minDate'); 
       $('#dt2').datepicker('setDate', minDate); 
      } 
0
Try this: 
    $('#dt2').datepicker('setDate', date2).trigger('change'); 
instead of: 
    $('#dt2').datepicker('setDate', date2); 
+0

Salut Adrian, merci pour votre réponse rapide. Je l'ai essayé, mais je suis désolé que ça ne marche pas. – user3559246

+0

Aucune idée? Peut-être que c'est important. Les champs de formulaire masqués sont utilisés pour capturer les dates de l'outil datepicker, mais ils ne sont remplis avec les données que si le champ datepicker datefield est cliqué. Les données du second champ date (autofilled) ne sont pas soumises au formulaire. – user3559246