2014-06-11 3 views
0

의존 객체가 AJAX 호출을 통해로드되기 때문에 아직로드되지 않은 <option/> 태그 인 "의존"동작을 만드는 중 문제가 발생했습니다. Ajax 호출이 완료되기 전에 종속 동작이로드하려고하는 경쟁 조건이있는 것으로 보입니다.QBO V3 동작 순서 동작

<div class="control-group" data-behavior="Depend" data-depend-options="{{'depends': 'W9', 'required': true}}"> 

는 "W9"는 <option/> 태그의 ID가됩니다 : 여기를로드하는 데 실패 요소 마크 업 행동 달려있다.

<select name="ProfessionalLicenseType" id="ProfessionalLicenseType" class="required" data-behavior="Dropdown" data-dropdown-options="{{ 'type': 'ObjectType', 'data': {{ 'Object': 'ProfessionalLicense' }}, 'selected': '{AttachmentType}', 'id': 'ObjectType' }}"> 

내가하지 종속성 동작을 생성하는 HTML 태그를 사용해야합니까 :이 옵션 태그는 다음 코드에 의해로드됩니다? 나는 대신이 종속성을 생성하기 위해 자바 스크립트를 사용해야합니까?

미리 감사드립니다.

답변

0

(가) 오히려 옵션 태그보다는 select 태그의 값으로 바인딩 행동 지원을 의존 : ProfessionalLicenseType의 값을 확인하고, 그것의 것을 발견 할 것이다,

<div class="control-group" data-behavior="Depend" data-depend-options="{{'depends': 'ProfessionalLicenseType=W9', 'required': true}}"> 

(가) 동작을 의존, 초기화에 빈, 활성화/비활성화 종속 div 태그 숨기기.

source.addEvent('change', qbo3.dependencyCheck.pass([source, element, options, depends])); 

드롭 다운 행동이 이상 (비동기) AJAX를 통해 옵션을로드하고, 행동의는 options.selected 경우 : 그것은 또한 ProfessionalLicenseType 드롭 다운을 변경 이벤트 처리기를 추가합니다 (qbo.Depends.js 45 라인) 설정되고, 상기 매칭 option.selected = TRUE (qbo.Dropdown.js 라인 (105))을 설정한다 : 본 실시의 target.fireEvent('change') 위에서 주목

if ((row[value] || row) == options.selected) { 
    target.options[target.options.length - 1].selected = true; 
    target.defaultIndex = target.options.length - 1; 
    target.fireEvent('change'); 
} 

받는 단계; 종속성을 재평가하고 적절하게 대응하기 위해 종속 동작을 트리거합니다.

+0

감사합니다. 매력처럼 일했습니다. – GoldRusher49