web-dev-qa-db-fra.com

jQuery UI datepicker - Essayer de capturer l'événement click à partir de la date cliquée

Nous utilisons jQuery UI 1.8.23 sur mon lieu de travail.

Comment capturer la date cliquée dans datepicker afin de pouvoir formater la date actuelle en un horodatage et transmettre cette valeur dans un champ de formulaire masqué?

Voici un code que j'ai essayé de faire fonctionner:

$('.ui-state-default').live('click', function(){
    console.log('date clicked');
    var currentdate = $(this).text();
    var d = currentdate;
    var m = monthFormat($('.ui-datepicker-month').text());
    var y = $('.ui-datepicker-year').text();
    $('a.ui-state-default').removeClass('ui-state-highlight');
    $(this).addClass('ui-state-highlight');

    if (currentdate.length < 2) {
    d = "0" + currentdate;
    }
    var datestamp = y + "-" + m + "-" + d;
    console.log(datestamp);
    $('#dateHidden').val(datestamp);
});

Merci d'avoir consulté mon code. J'apprécie toute aide que vous pouvez apporter.

8
James Pickering

Vous n'avez rien à faire pour formater la date. Le widget DatePicker le fait pour vous. Utilisez simplement les propriétés altField et altFormat:

$("#myDatePicker").datepicker({
    // The hidden field to receive the date
    altField: "#dateHidden",
    // The format you want
    altFormat: "yy-mm-dd",
    // The format the user actually sees
    dateFormat: "dd/mm/yy",
    onSelect: function (date) {
        // Your CSS changes, just in case you still need them
        $('a.ui-state-default').removeClass('ui-state-highlight');
        $(this).addClass('ui-state-highlight');
    }
});

Documentation:

http://api.jqueryui.com/datepicker/#option-altField

http://api.jqueryui.com/datepicker/#option-altFormat

Manifestation:

http://jsfiddle.net/sFBn2/10/

16
melancia

jQueryDatepickerdonne l'option de date de formatage. Alors, pourquoi ne vous en servez-vous pas?

$('element').datepicker({ dateFormat: 'dd-mm-yy' });

De plus, vous n'avez pas besoin d'une méthode distincte pour capturer l'événement click. Vous la méthode par défaut onSelect

$('input').datepicker({
 dateFormat: 'yy-mm-dd',
    onSelect: function (date) {
    //defined your own method here
    alert(date);
    }
})

Vérifiez ceci JSFiddle

1
Praveen
$('#calendar').datepicker({
        inline: true,
        firstDay: 1,
        changeMonth: false,
        changeYear: true,
        showOtherMonths: true,
        showMonthAfterYear: false,
        yearRange: "2015:2025",      
        dayNamesMin: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
        dateFormat: "yy-mm-dd",
        onSelect: function (date) {
            alert(date);
        }
    });
1
PSN-RaffyBoy81

Votre datepicker écoute ça.

voir fonction onSelect ()

Appelé lorsque le sélecteur de date est sélectionné. La fonction reçoit la date sélectionnée sous forme de texte et l'instance datepicker sous forme de paramètres. cela fait référence au champ de saisie associé.

$('.date-pick').datepicker( {
    onSelect: function(date) {
        //play with date here
    },
----
----
---
0
Suresh Atta