web-dev-qa-db-ja.com

jquery datepickerのデフォルトの日付

日付を動的に取得するために日付ピッカーの属性を取得しようとしていますが、変数に設定しようとするとキャッチされない例外エラーが発生します。

エラーは、カレンダー(インライン)がないページでのみ発生します。このエラーが発生せずにセレクタからrelタグをプルするにはどうすればよいですか?

//Event Calendar Home Page and Listing
function calendar_picker () {
$("#calendar-inline").datepicker({
   //defaultDate: $(this).attr('rel'),
    dateformat: 'yy-mm-dd',
    maxDate: '+1y',
    minDate:'-0d',
    hideIfNoPrevNext: true,
    showButtonPanel: false,
    navigationAsDateFormat: false,
    onSelect: function(dateText, inst) {
                 var d = new Date(dateText);
   var fmt1 = $.datepicker.formatDate("yy-mm-dd", d);
   $.ajax({
   type: "POST",
   url: "/events/listing/all/20/",
   dataType: "html",
                        date: "event_date="+fmt1,
   success: function(){
                        window.location.href= "/events/browse/"+fmt1;
    }});}});
}

[〜#〜] update [〜#〜]正解、コメント行は私が問題を抱えているものです。これから#calendar-inlineから属性relをプルする正しい方法は何ですか。すべての試みはjsでキャッチされていないエラーをスローします

更新2

function calendar_picker () {
var myDate = new Date($("#calendar-inline").attr('rel'));
    $("#calendar-inline").datepicker({

     dateformat: 'yy-mm-dd',
     defaultDate:myDate,

ソリューション:

function calendar_picker () {
var myDate = null;
if ($("#calendar-inline").attr('rel') != null) {
     myDate = $.datepicker.parseDate("yy-mm-dd", $("#calendar-inline").attr('rel'));
     }
    $("#calendar-inline").datepicker({

     dateformat: 'yy-mm-dd',
     defaultDate:myDate,
12
matthewb

これを試して:

defaultDate: $("#calendar-inline").attr('rel')

これは 'rel'属性から日付を取得しようとし、それが存在しない場合はnullを返します。 datepickerのデフォルトの日付にnullが渡されると、今日がデフォルトの日付として使用されます。

9
David Radcliffe

これでデフォルトの日付を設定できます:

<script type="text/javascript">
$(function() {               
    $("#date" ).datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '1920:2010',
        dateFormat : 'dd-mm-yy',
        defaultDate: new Date(2000,01,01)
    });
});
</script>

参照 http://jqueryui.com/demos/datepicker/#option-defaultDate

8
Somnath Muluk

これは私にとってはうまくいきます:

var nowDate = new Date(year, month, day, hours, minutes, seconds, milliseconds);

次に、日付ピッカーで次のように設定します。

defaultDate: nowDate;
0
Joshua Kissoon

あなたの質問は少し不明確です-私が想定しているのは、コメントアウトされた行で問題が発生しているということです。

それが正しければ、あなたの問題は「これ」にあると思います。 「これ」が何であると期待しているのかよくわかりませんが、関数内ではウィンドウオブジェクトになります。

私が完全に間違った軌道に乗っている場合は、質問をいくつかの詳細情報で更新してください。

0
Whisk