jQuery datepicker, seçilen tarihi anında ayarlar


121

Jquery Tarih seçicinin seçilen tarihini dinamik olarak anında nasıl değiştirebilirim? Satır içi bir tarih seçici oluşturduğumu söyledim. Sonra bir süre sonra, tarih seçiciyi sıfırdan yeniden oluşturmadan farklı bir tarihi orada yansıtmak istiyorum.

Ben setDate yöntemi denedim ama işe yaramadı ve çok dokümantasyon yoktur doc .

Burada başka bir (genişletilmiş?) Eklenti var , ancak jquery.ui.all.js ile birlikte gelen eklentiyi kullanmak istiyorum.

Yanıtlar:


187

JQuery-UI'nin hangi sürümünü kullanıyorsunuz? Aşağıdakileri 1.6r6, 1.7 ve 1.7.1 ile test ettim ve çalışıyor:

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

16
setDate çalışmazsa setDate yerine defaultDate kullanın.
bingjie2680

8
ama benim için her iki şekilde de işe yaramadı. tarih değiştirildi. ancak seçilen tarih takvimde görünmüyor. bana sadece bugün vurgulanmış olarak gösteriyor.
Prageeth godage

28

MinDate veya maxDate seçenekleri ayarlanmışsa, ayarlamaya çalıştığınız tarihin izin verilen tarih aralığında olup olmadığını kontrol edin.


10

Bu örnek, açılır takvimde varsayılan değerin ve metin kutusundaki değerin nasıl kullanılacağını gösterir. Ayrıca, varsayılan değerin önceki tarihe nasıl ayarlanacağını da gösterir.

selectedDate, takvim kontrolünün geçerli seçili tarihini tutan başka bir değişkendir

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

8

Keith Wood ( http://keith-wood.name/datepickRef.html ) tarafından yazılan DatePicker için aşağıdaki çalışmaların yapıldığına dikkat edin - varsayılan tarih ayarının en son olduğuna dikkat edin:

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

7

Bazı nedenlerden dolayı setDate'i çalıştıramadım.

Bulduğum bir çözüm, verilen girdinin değer özniteliğini güncellemektir. Elbette tarih seçicinin kendisi güncellenmeyecek, ancak aradığınız şey tarihi görüntülemekse, iyi çalışıyor.

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

6
Aylarca bir kesinti var, bu yüzden (date.getMonth () + 1)
Adam

1
setDate ilk seçeneklerde ayarlandıysa çalışmıyor, daha sonra onu .datepicker ('setDate', ...) ile zincirledim
martined

4
$('.date-pick').datePicker().val(new Date()).trigger('change')

nihayet, son birkaç saatte aradığım şey bu! Yalnızca metin alanındaki kurulum tarihini değil, değişiklikleri başlatmam gerekiyor!


2
O olmalı .datepicker()değil.datePicker()
Arslan Tabassum

3

Bu eski bir iş parçacığı ama ben sadece nasıl kullandığım hakkında biraz bilgi vermek istiyorum. Bugün tarihini ayarlamak istiyorsanız, aşağıdaki gibi uygulayabilirsiniz.

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

Mevcut tarihten birkaç gün önce / sonra ayarlamak -/+istiyorsanız, aşağıdaki gibi kaç gün istediğinizi gösteren sembol sembolünü kullanın .

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

2

setDate yalnızca jquery kullanıcı arabiriminde kullanılan bir satır içi tarih seçici ile ilgili bir sorun gibi görünüyor, özel hata InternalError: çok fazla özyineleme.


2

Bu benim için çalışıyor:

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

2

Html'de bunun gibi bir tarih seçiciyle giriş alanınızı ekleyebilirsiniz

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

ve sonra java betiğinde, tarih seçicinizi başlatın ve değerinizi şu şekilde tarihe ayarlayın,

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

(Burada fromdate özniteliği, geçerli tarihin önceki tarihlerini gösterir)


0
var dt = new Date();
var renewal = moment(dt).add(1,'year').format('YYYY-MM-DD');
// moment().add(number, period)
// moment().subtract(number, period)
// period : year, days, hours, months, week...

Stack Overflow'da yalnızca kod yanıtları önerilmez çünkü sorunu nasıl çözdüğünü açıklamazlar. Lütfen cevabınızı kodun ne yaptığını ve soruyu nasıl cevapladığını açıklamak için düzenleyin, böylelikle OP için olduğu kadar diğer kullanıcılar için de yararlı olur.
FluffyKitten

-1

SetDate yöntemiyle de çok sorun yaşadım. sadece v1'de çalışıyor gibi görünüyor. Ancak işe yarayan şey dpSetSelected yöntemini kullanıyor:

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

iyi şanslar!


-1

ya da basitçe sahip olabilirsin

$('.date-pick').datePicker().val(new Date()).trigger('change')

1
Öyle olmalı .datepicker()değil .datePicker().
Florin Frătică
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.