Pergunta

Como posso alterar a data selecionada de jquery Selecionador de data dinamicamente em tempo real? Eu digo criou um selecionador de data em linha. Então, depois de algum tempo, eu quero refletir uma data diferente lá sem recriar o datepicker a partir do zero.

Eu tentei o método setDate, mas não funcionou, e não há muita documentação no doc .

Há outro (extended?) Plug-in aqui , mas eu quero usar o plugin que é fornecido com jquery.ui.all.js.

Foi útil?

Solução

Qual versão do jQuery-UI você está usando? Eu testei o seguinte com 1.6r6, 1.7 e 1.7.1 e funciona:

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

Outras dicas

Verifique se a data que você está tentando configurá-lo para mentiras dentro do intervalo de datas permitido se as opções MinDate ou MaxDate estão definidos.

Este exemplo mostra de como usar o valor padrão no calendário suspenso e valor na caixa de texto. Ele também mostra como para definir o valor padrão para data anterior.

SelectedDate é outra variável que contém data selecionada atual do controle de calendário

    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);

notar que, para DatePicker por Keith Wood ( http://keith-wood.name/datepickRef.html ) as seguintes obras - nota que a definição da data padrão é a última:

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

Por alguma razão, em alguns casos, eu não poderia fazer o trabalho de setDate.

A solução que eu encontrei é simplesmente atualizar o atributo valor da entrada dada. Claro que o datepicker em si não será atualizado, mas se o que você acabou de procurar é para mostrar a data, ele funciona bem.

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, que o que eu olho para as últimas horas! Eu preciso iniciar mudanças, não apenas a data de instalação no campo de texto!

setDate só parece ser um problema com um datepicker linha usada em jquery UI, o erro específico é InternalError:. Demasiada recursão

Isso funciona para mim:

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

Esta é uma discussão antiga, mas eu só quero dar algumas informações de como tenho usado. Se você deseja definir a data de hoje você pode simplesmente aplicá-lo como abaixo.

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

Se você quiser definir alguns dias antes / depois da data atual, em seguida, usar o símbolo símbolo -/+ de quantos dias você quer como abaixo.

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

Eu tinha um monte de problemas com o método setDate também. parece funcionar apenas em v1. O que parece funcionar no entanto está usando o método dpSetSelected:

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

boa sorte!

Em Html você pode adicionar seu campo de entrada com um seletor de data como esta

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

e, em seguida, em java script, inicializar o datepicker e definir o seu valor para a data como esta,

$('.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 );

(Na mostra atributos aqui fromdate as datas anteriores a data atual)

ou você pode simplesmente ter

$('.date-pick').datePicker().val(new Date()).trigger('change')
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top