1

jQuery UI と load 関数を使用してダイアログ ページを読み込んでいます。

$("#update_link").dialog({
  modal: false,
  height: 370,
  width: 900,
  title: 'עדכן קישור',
  open: function () {
    $(this).load("<?= site_url()?>/links/show_update?id="+rel+"&rand="+rand());
  }
});

ダイアログ内には、ID「add_time」の入力テキストがあります。この入力には、日付ピッカーがあります。

$(".float_form[rel='<?=$id;?>'] #add_time").datepicker({
  showOn: "button",
  buttonImage: "<?=base_url()?>/images/icons/new.png",
  buttonImageOnly: true,
  onClose: function(dateText, inst) { alert("die"); }
});

実行すると、初めて正常に動作します。次に、ダイアログを閉じて、ダイアログを開くリンクを変更します (Ajax を使用)。日付ピッカーで入力テキストをもう一度クリックすると、コンソールに次のエラーが表示されます。

キャッチされていない TypeError: 未定義のプロパティ 'currentDay' を設定できません

このエラーのため、日付ピッカー内の日付をクリックできません。私は何を間違っていますか?

私の悪い英語で申し訳ありません、そしてありがとう:)

4

2 に答える 2

3

解決策を見つけました: 必要なのは to を置き換えることだけid="add_time"ですclass="add_time"

コード:

$(".add_time").datepicker();
于 2012-08-06T09:53:31.227 に答える
2

あなたはdatepicckerの破壊を台無しにしたようです、ここに例があります:

<link href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/base/jquery-ui.css" rel="stylesheet" type="text/css"/>
<div id="dialog" style="display:none">

</div>
<button id="ds">dialog show</button>

<script>
$(function(){$('#ds').click(function() {
    var datep = $('<input type="text" id="datep">');
    datep.datepicker();
    var dlg = $('#dialog').dialog({
        modal: false,
        open: function() {
            var e = $(this);
            e.html('');
            e.append(datep);

            console.log(datep);
        },
        close: function() {
            datep.datepicker("destroy");
        }

    });
});
});
</script>

http://jsfiddle.net/K5ZWm/13/

教訓:ダイアログを閉じるときは、datepickerではなくdesroyを使用します。

于 2012-08-05T14:39:19.760 に答える