2014-12-22 2 views
0

dijit/form/Form을 사용하여 모든 양식 위젯의 유효성을 검사하는 페이지가 있습니다.mvc 그룹이 사용 된 경우 Dijit 양식의 유효성 검사가 중단됩니다.

양식 (태그) 바로 위젯을 넣으면 유효성 검사가 올바르게 작동합니다.

일단 dojox/mvc/Group (양식 내)으로 위젯을 둘러싸면 양식 유효성 검사가 완전히 중지되고 Form :: validate()를 호출 할 때 위젯 중 유효성 검사를하지 않는 것으로 보입니다.

Dojo 코드를 디버깅하면 중첩 된 위젯이 양식에서 유효성이 있다고 간주되지 않으므로 그룹으로 위젯을 둘러싸는 경우 유효성 검사에서 제외됩니다.

해결 방법이 있습니까?

답변

0

dijit/form/Form으로 해결할 수있는 쉬운 방법이없는 것처럼 보입니다. 적어도 중첩 된 위젯을 고려하려면 서브 클래스 화하거나 원숭이 패치해야합니다.

그러나 dojox/form/Manager에서는 중첩 된 위젯을 올바르게 처리 할 수 ​​있으므로 전환했습니다.

Manager로 전환하는 데 dom 양식 (dijit/form/Form을 변환 할 수 있음)으로 간단히 변환 할 수 없기 때문에 일부 리팩토링이 필요했습니다.

HTML 코드 전 :

<div 
    id="_pg_detailForm" 
    data-dojo-type="dijit/form/Form" 
    encType="multipart/form-data" 
    action="" method="" 
    > 
    ... form widgets (surrounded with MVC Groups...etc) 
    </div> 

후 :

<form id="_pg_detailForm"> 
    <div 
     id="_pg_detailFormManager" 
     data-dojo-type="dojox/form/Manager" 
    > 
     ... form widgets (surrounded with MVC Groups...etc) 

    </div> 
    </form> 
1

AFAICT dijit/form/_FormMixin#_getDescendantFormWidgets()dijit/_WidgetBase#getChildren()에서 문제가 data-dojo-type="dojox/mvc/Group"을 갖는 요소에 data-dojo-mixins="dijit/_Container"를 첨가함으로써 해결할 수있다.

또한 dojox/mvc/tests/test_mvc_new_loan-stateful.html 예제는 dojox/mvc와 함께 양식 유효성 검사 솔루션을 보여줍니다.

희망이 있습니다.

최고, 아키

+0

감사의 말씀 Akira, 나는 그 테스트 페이지를 점검 할 것이다. – sola

관련 문제