Domanda

Come posso cambiare dinamicamente la data selezionata del selettore di date jquery al volo? Ho detto di aver creato un selettore di date incorporato. Quindi, dopo un po 'di tempo, voglio riflettere una data diversa lì senza ricreare lo datepicker da zero.

Ho provato il metodo setDate, ma non ha funzionato e non c'è molta documentazione nel doc .

Esiste un altro plug-in (esteso?) qui , ma voglio usare il plugin che viene fornito con jquery.ui.all.js.

È stato utile?

Soluzione

Quale versione di jQuery-UI stai usando? Ho testato quanto segue con 1.6r6, 1.7 e 1.7.1 e funziona:

//Set DatePicker to October 3, 2008
$('#dateselector').datepicker("setDate", new Date(2008,9,03) );

Altri suggerimenti

Verifica che la data in cui stai tentando di impostarla rientri nell'intervallo di date consentito se sono impostate le opzioni minDate o maxDate.

Questo esempio mostra come utilizzare il valore predefinito nel calendario a discesa e il valore nella casella di testo. Mostra anche come impostare il valore predefinito alla data precedente.

selectedDate è un'altra variabile che contiene l'attuale data selezionata del controllo calendario

    var date = new Date();
    date.setDate(date.getDate() - 1);

    $("#datepicker").datepicker({
        dateFormat: "yy-mm-dd",
        defaultDate: date,
        onSelect: function () {
            selectedDate = $.datepicker.formatDate("yy-mm-dd", $(this).datepicker('getDate'));
        }
    });

    $("#datepicker").datepicker("setDate", date);

Notato che per DatePicker di Keith Wood ( http://keith-wood.name/datepickRef.html ) le seguenti opere: nota che l'impostazione della data predefinita è ultima:

    $('#datepicker').datepick({
        minDate: 0,
        maxDate: '+145D',
        multiSelect: 7,
        renderer: $.datepick.themeRollerRenderer,
        ***defaultDate: new Date('1 January 2008')***
    });

Per qualche ragione, in alcuni casi non sono riuscito a far funzionare setDate.

Una soluzione alternativa che ho trovato è semplicemente aggiornare l'attributo value dell'input dato. Ovviamente lo stesso datepicker non verrà aggiornato, ma se quello che cerchi è visualizzare la data, funziona bene.

var date = new Date(2008,9,3);
$("#your-input").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());
// Will display 9/3/2008 in your #your-input input
$('.date-pick').datePicker().val(new Date()).trigger('change')

finalmente, quello che cerco nelle ultime ore! Ho bisogno di avviare le modifiche, non solo di impostare la data nel campo di testo!

setDate sembra essere solo un problema con un datepicker inline utilizzato nell'interfaccia utente di jquery, l'errore specifico è InternalError: troppa ricorsione.

Questo funziona per me:

$("#dateselector").datepicker("option", "defaultDate", new Date(2008,9,3));

Questo è un vecchio thread, ma voglio solo dare alcune informazioni su come ho usato. Se vuoi impostare la data odierna, puoi semplicemente applicarla come di seguito.

 $("#datepickerid").datepicker("setDate", "0");

Se vuoi impostare alcuni giorni prima / dopo la data corrente, usa il simbolo - / + di quanti giorni vuoi come di seguito.

 $("#datepickerid").datepicker("setDate", "-7");
 $("#datepickerid").datepicker("setDate", "+5");

Ho avuto molti problemi anche con il metodo setDate. sembra funzionare solo in v1. Ciò che sembra funzionare, tuttavia, sta usando il metodo dpSetSelected:

    $("#dateselector").dpSetSelected(new Date(2010, 0, 26).asString());

buona fortuna!

In HTML puoi aggiungere il tuo campo di input con un selettore di date come questo

<input class="form-control date-picker fromDates" id="myDate" type="text">

e quindi nello script java, inizializza il tuo datepicker e imposta il valore sulla data in questo modo,

$('.fromDates').datepicker({
                maxDate: '0',
                dateFormat: "dd/mm/yy",
                changeYear: true,
                changeMonth: true,
                yearRange: "-100:+0"
            });

var myDateVal = moment('${value}').format('DD/MM/YYYY');
$('#myDate').datepicker().datepicker('setDate', myDateVal );

(Qui l'attributo fromdate mostra le date precedenti della data corrente)

o puoi semplicemente aver

$('.date-pick').datePicker().val(new Date()).trigger('change')
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top