Domanda

Ho un datepicker su un modulo di domanda. Permettiamo solo le applicazioni in cui la data di nascita è all'interno di una certa fascia di età. Ho attivato ChangeYear e impostare il YearRange a "-65: 16". I problemi che sto avendo sono i seguenti:

1 - Quando seleziono una data senza prima cosa selezionare nel menu a discesa anno, ottengo il mese corretto e giorno, ma ottengo 2016 come un anno.

2 - Cercando di risolvere questo problema ho impostato il YearRange a "n-65: n-16". Questo fa sì che la discesa anno per visualizzare solo l'anno in corso (2010). Ancora più strano è che se si seleziona una data, è ancora ottenere il mese corretto e il giorno, e il 2016.

Ecco il codice che uso per impostare il datepicker:

    <script type="text/javascript">
    $(document).ready(function (e) {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(EndRequestHandler);

        function EndRequestHandler(sender, args) {
            $(function () {
                $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' })
            });
        }

        $(function () {
            $("#DateOfBirth").datepicker({ yearRange: '-65:-13', changeMonth: true, changeYear: true, defaultDate: '1-1-1994', dateFormat: 'mm-dd-yy' })
        });
    });
</script>

Mi auguro questa è una cosa che ho fatto di male, e qualcuno può dirmi di cosa si tratta. Grazie per qualsiasi aiuto.

È stato utile?

Soluzione

Prova usando 'C' per l'anno in corso, come:

$('.datepicker').datepicker({changeYear: true, yearRange : 'c-65:c+10'});

Per ulteriori informazioni, vista http://api.jqueryui.com/datepicker/#option- yearRange

Altri suggerimenti

Controlla le impostazioni defaultDate. Posso solo vedere quello che stai descrivendo quando cambio la data predefinita per qualcosa al di fuori del campo di anno specificato (vale a dire '2016/01/01'.) Tutto il resto nel codice che avete inviato ha funzionato per me.

Siamo imbattuti casualmente in questo pure. Non ho fatto ricerche ulteriormente, ma l'ordine di chiamata sembra fare la differenza.

Questo funziona:

$('DIV#startdate').datepicker( 'option', { dateFormat: 'yy-mm-dd' } );
$('DIV#startdate').datepicker( 'setDate', '10-09-11' );
$('DIV#startdate').datepicker( 'option', { changeYear: true } );

Qui viene presentata l'ListBox anno con solo 2010:

$('DIV#startdate').datepicker( 'option', { dateFormat: 'yy-mm-dd' } );
$('DIV#startdate').datepicker( 'option', { changeYear: true } );
$('DIV#startdate').datepicker( 'setDate', '10-09-11' );

Provare a dare la gamma con valori effettivi all'anno. per es.

$('.datepicker').datepicker({changeYear: true, yearRange : '1990:2010'})

Si dovrebbe anche funzionare con qualsiasi dateformat.

Provare ad usare l'opzione MaxDate e MinDate come:

$(document).ready(function () {
    $("#datepicker").datepicker({
        yearRange: '-65:-13',
        changeMonth: true,
        changeYear: true,
        defultDate: '1-1-1994',
        dateFormat: 'mm-dd-yy',
        minDate:"-65Y",
        maxDate:"-13Y" 
    });
});
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top