2016-11-25 5 views
1

テンプレートに日付ピッカーを表示する方法はありますか? 私は次のコードを使用している:テキストボックスショーSilverstripe 3は日付ピッカーをテンプレートに表示します

DateField: 
    default_config: 
    showcalendar: true 

が、テキストボックスがクリックされたときに何の日付ピッカーを示しています

TextField::create('DateFrom','Date From')    
       ->setAttribute('data-datepicker', true) 
       ->setAttribute('data-date-format', 'DD-MM-YYYY'), 

を私は私の設定YAMLファイルにこれを追加しました。

答えて

4

2つの方法がありますする必要があります。あなたはそうのようなSilverStripe DateFieldを使用するか:

DateField::create('DateFrom','Date From')->setConfig('showcalendar', true); 

SilverStripe DateFieldには、JavaScriptを使用して、日付ピッカーをレンダリングします。

または、日付ピッカーのブラウザ実装に依存するHTML5日付フィールドを使用します。仕事にそのために、あなたも(textへのデフォルト)dateにフィールドのtypeを設定する必要があります。

DateField::create('DateFrom','Date From') 
    ->setAttribute('type', 'date') 
    ->setConfig('datavalueformat', 'dd-MM-yyyy') // Server side validation 
    ->setAttribute('data-datepicker', true) 
    ->setAttribute('data-date-format', 'DD-MM-YYYY'); 
+0

ありがとう、私は動作しなかったSSの日付フィールドを使ってみました。 HTML5の日付フィールドが動作します、ありがとうございます。 1つは、プレースホルダテキストが何らかの理由でdd--- yyyyとして表示されていることです。私は月を見せることができません。 – Craig

+0

@Craig silverstripeはデフォルトでプレースホルダを追加していないので、ブラウザ関連の問題か、使用しているJSライブラリの問題があると思いますか?あなたの 'data-'属性は私に、JSコードがいくつか追加されていると思うようにします。 – bummzack

3

TextFieldの代わりにDateFieldを使用する必要があります。

TextField::create('DateFrom','Date From')    
      ->setAttribute('data-datepicker', true) 
      ->setAttribute('data-date-format', 'DD-MM-YYYY'), 

DateField::create('DateFrom','Date From')    
      ->setAttribute('data-datepicker', true) 
      ->setAttribute('data-date-format', 'DD-MM-YYYY'), 
+1

私はHTML5ウェイは悪い選択ではないと思います。個人的にSS-DateFieldで取得するピッカーフィールドは嫌いです。あなたはまだDateFieldを使用できますが、SSからJS-Pickerを無効にしてpolyfillを使用する必要があります。参照してくださいhttp://stackoverflow.com/questions/22983013/how-to-get-html-5-input-type-date-working-in-firefox-and-or-ie-10 – munomono

+1

'DateField' doesn ' HTML5属性を使用して日付ピッカーを有効にすると、 ' - > setConfig( 'showcalendar'、true)'となります。 HTML5の日付ピッカーが必要な場合は、 'TextField'も同様に動作するはずです... – bummzack

関連する問題