2012-07-09 4 views
4

HTML5를 실험하고 있습니다. 제가 알고 싶습니다. Wicket은 날짜와 이메일 같은 HTML5 입력 타입과 어떻게 작동합니까? 현재 Wicket은 자바 스크립트를 사용하여 날짜 입력을위한 달력을 생성합니다.개찰구에서 html5 캘린더 입력 유형을 사용하는 방법

Wicket이 date 유형의 HTML5 입력 태그 (및 다른 새로운 HTML5 태그)를 지원하지 않는 브라우저를 처리하는 방법이 무엇인지를 복잡하게 만드는 점이 있습니다.

답변

4

Wicket (1.5 이상)은 입력 유형 = '날짜'또는 이와 유사한 구조를 지원하지 않습니다. Wicket Extension에는 DateTextField가 있지만 type='date' (아직)은 지정되어 있지 않습니다. 나는 타입 애트리뷰트를 적절히 설정하는 자신 만의 구현을 만드는 것을 제안한다. (필자는 그들이 필드에 추가되지 않은 이유는 기존의 애플리케이션을 깨뜨릴 것이라고 생각하기 때문이다.)

EmailTextField, NumberTextFieldothers이 있습니다. 이것들은 type 속성을 추가하고 서버에서 입력의 유효성을 검사합니다.

HTML5 입력을 지원하지 않는 브라우저는 type='text'으로 폴백하므로 위젯 관점에서는 별다른 차이가 없습니다. Wicket은 설정된 규칙에 따라 입력 내용의 유효성을 검사합니다.

+0

감사 Martijn. 나는 HTML5 드래그 앤 드롭 기능이 Wicket에서 작동하지 않을 것이라고 생각한다. 컴포넌트 계층을 깨뜨릴 수 있기 때문이다. – sardo

0

당신은 당신이 TextField 컴퍼넌트의 onComponentTag 방법의 유효성 검사를 건너 뛰 메소드 텍스트 필드 번호 getInputType()을 무시하고 그와 "날짜"를 반환해야합니다. 예를 들어 자신 만의 구성 요소를 만들지 않으려면 다음과 같은 익명 클래스를 사용할 수 있습니다.

 DateTextField dob = new DateTextField("dob", dobModel){ 
      private static final long serialVersionUID = 1L; 

      /* (non-Javadoc) 
      * @see org.apache.wicket.markup.html.form.TextField#getInputType() 
      */ 
      @Override 
      protected String getInputType() 
      { 
       return "date"; 
      }   
     }; 
관련 문제