2016-11-25 1 views
1

서식 파일에 날짜 표시기를 표시하는 방법이 있습니까? Silverstripe 3 템플릿에 날짜 선택 도구 표시

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

나는 나의 구성 YAML 파일이 추가 :

DateField: 
    default_config: 
    showcalendar: true 

텍스트 상자 쇼를하지만 텍스트 상자를 클릭 할 때 아무 날짜 선택이 표시되지 않습니다 다음 코드를 사용했다.

답변

4

해야한다. 어느 쪽이든 당신은 지금처럼 SilverStripe DateField 사용

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

SilverStripe하여 DateField 자바 스크립트를 사용하여 날짜 선택기를 렌더링합니다.

또는 날짜 선택 도구의 브라우저 구현에 의존하는 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 datefield를 사용해 보았습니다. HTML5 날짜 필드가 작동합니다. 감사합니다. 한 가지로, 자리 표시 자 텍스트는 어떤 이유로 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로 얻는 pickerfield를 개인적으로 싫어합니다. 여전히 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