2011-03-12 3 views
0

Dojo를 사용하여 웹 응용 프로그램을 빌드하려고합니다. 나는 Dojo의 xhrPost 기능을 통해 사용자가 "저장"버튼을 누를 때마다 양식에 변경된 내용을 저장하는 서버 측 프로그램에 데이터를 게시하는 양식이 있습니다. 내가하고 싶은 일은 변경되지 않은 문서를 반복적으로 저장하지 않으려면 양식 필드에서 다음에 무언가가 변경 될 때까지 저장을 완료 한 후에 저장 버튼을 비활성화하는 것입니다.양식 편집시 Dojo를 사용하여 제출 단추 다시 활성화

Dojo의 이벤트 감시 기능을 사용하여 변경 사항을 감시했지만 성공하지 못했습니다. 저장 버튼을 다시 활성화하는 이벤트는 아무 것도하지 않습니다. 여기에 내가 뭘하려 : 양식이 혼자 마우스를 사용하여 편집 할 때 다시 활성화 버튼을 때 onKeyPress 대신의 onChange의 사용

eventWatching.push(dojo.connect(dijit.byId('editForm'), 'onChange', function() { dijit.byId('saveButton').set('disabled', false); })); 

유망 듯,하지만하지 (명백하게)했다.

답변

3

1.6 이전에는 dijit.form.Form이 자녀의 onChange을 자체 연결하지 않았기 때문에 onChange 아이디어가 작동하지 않는 것 같습니다. 도장 1.6에서

는 당신을 위해 무엇을 요구하는지 것은 위젯 지금 dojo.Stateful 기능 상속 사실을 이용하여 쉽게 할 수있다 : 1.5

form.watch('value', function(property, oldvalue, newvalue) { 
    /* ... */ 
}); 

또는 몇 가지 작업을 걸릴 수 있습니다이 낮은; 내 머리 꼭대기에서 쉬운 길을 생각할 수는 없지만 누군가 다른 아이디어를 가지고 있거나 나중에 나에게 타격을 줄 수 있습니다.

당신은 onChange과 가치를보고 여기 1.6의 기능을 접선에 대한 코드가 책임 찾을 수 있습니다

다음 NEWVALUE 양식이 유효 emptyString 경우 https://github.com/dojo/dijit/blob/master/form/_FormMixin.js#L396-429

+0

감사합니다. Ken! 그것은 완벽합니다. 나는 이번 주에 1.6을 발표하면서이 작업을하고 싶습니다. –

0

합니다.

frm1.watch('state',function(property, oldvalue, newvalue) { 
console.log(newvalue) 
})