9

1つのフォームに2つの日付ピッカーがあります。それらは異なるIDを持っているので、これはこのような同様のエラーに関連するべきではありません。 jQuery。動的形式ですべてのフィールドにセレクターを適用します

私がfirebugで発生しているエラーは、「キャッチされない例外:このdatepickerのインスタンスデータがありません」です。

これは、フォームの2番目の日付ピッカーである「#copyTo」日付ピッカーから日を選択したときにトリガーされます。最初の日付ピッカーは完全に機能します。

私が持っている形は

  <form name = "copy" action = "copyEvents.php" method = "post">
     <input type = "hidden" id = "copyFromHid" name = "copyFromHid" />
     <input type = "hidden" id = "copyToHid" name = "copyToHid" />

     コピー元<inputid= "copyFrom" name = "copyFrom" />

     コピー先<inputtype= "text" id = "copyTo" name = "copyTo" />

     <input type = "hidden" name = "gid" id = "gid" />
     <input type = "submit" value = "copy" />
  </ form>

jqueryは

jQuery('input#copyFrom','div#copyFromHistory form')
    .datepicker({ 
        altField: 'input#copyFromHid',
        altFormat: 'yy-mm-d',
        dateFormat: 'd MM yy', 
        firstDay: 1,
        beforeShowDay: function(date) { 
            return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
    });
jQuery('input#copyTo','div#copyFromHistory form')
    .datepicker({ 
        altField: 'input#copyToHid',
        altFormat: 'yy-mm-d',
        dateFormat: 'd MM yy', 
        firstDay: 1,
        beforeShowDay: function(date) { 
            return (date.getDay() == 1) ? [true, ""] : [false, ""]; }
    });

最初のフィールドが機能するが、2番目のフィールドは機能しない理由について何か提案はありますか?

4

2 に答える 2

6

簡単に解決できます。コードを次のように変更します。

$('.date').live('focus', function(){
    $(this).datepicker({
        changeMonth: true,
        changeYear: true,
        yearRange: '1930:'+(new Date).getFullYear()
    });
});
于 2012-06-01T02:04:38.770 に答える
2

2つのことが頭に浮かびます。

1つはjQueryセレクターにあります:

jQuery('input#copyFrom','div#copyFromHistory form')
jQuery('input#copyTo','div#copyFromHistory form')

どちらの場合も、context / ownerDocumentパラメーターをに渡しますがjQuery()、それはDOM要素またはドキュメントを探しています...文字列ではありません。

そして2番目のことは:

Copy From <input id="copyFrom" name="copyFrom"/>
Copy To <input type="text" id="copyTo" name="copyTo"/>

コピー先にはtype="test"あり、コピー元にはありません(デフォルトの入力タイプはテキストですが、おそらくそうではありません)

私はあなたが本当に欲しいと思う:

jQuery('input#copyFrom').datepicker(....)
jQuery('input#copyTo').datepicker(....)
于 2010-01-22T04:13:23.047 に答える