2016-07-08 6 views
0

2つの入力がJqueryUIのdatepickerでバインドされています。ここで

<div>Start Date <input id="startdate" type="text" class="DP" data-Dformat='2010-01-01' ></div> 
<div>End Date <input id="enddate" type="text" class="DP" data-Dformat='2010-01-27' ></div> 

は私のスクリプトです:データをつかむために$(this)を使用して、データ属性「DFORMAT」の値にデフォルトの表示日付を設定するためにクリックしたときに

// INIT Date Picker 
    $('.DP').datepicker({ 
    showOn: "button", 
    buttonText: "Date", 
    dateFormat: "yy-mm-dd", 
    }); 
    // Setter  
    $('.DP').datepicker("option", "defaultDate", $(this).attr("data-dformat")); 

は私が日付ピッカーをしたいです、それは動作しません - それは単に現在の日付を表示します。

私は期待どおりにすべてが機能し

// Setter  
$('.DP').datepicker("option", "defaultDate", '2010-01-01' ); 

と「セッター」を交換する場合は、なぜ私は$(this)を使用してデータを得ることができますか?

ご迷惑をおかけして申し訳ありません。 、ありがとう

+0

'$( '.DP')を使用してみてください:' $ {this() '、' defaultDate '、' 2010-01-01 ');}); ' –

+0

ahem ... '$(this).attr(" data-Dformat ")' ...;)に大文字のDがあることに注目してください。 –

答えて

0

$('.DP').datepicker("option", "defaultDate", '2010-01-01' );のようなステートメントを実行してもコンテキストは変更されません。 thisは、その関数が実行されていたコンテキストを参照します。

あなたが何か実行して何をしようとして達成することができます:今、私たちはそれを内部コンテキストが反復されている現在の要素であり、異なる機能を実行していることを

$('.DP').each(function(i,elm){ 
    $(this).datepicker("option", "defaultDate", $(this).attr("data-dformat") ); 
}); 

注意を。

また、大文字でHTML属性を設定することはできません。したがって、data-Dformat='2010-01-01'data-dformat='2010-01-01'である必要があります。

クラス名の一般的な命名規則は小文字でもあります。

関連する問題