2011-08-14 4 views
3

저는 _Widget을 만들고 폼에 필드를 수정하자마자 save 버튼을 사용할 수 있도록 onchange 이벤트를 전체 폼에 첨부하려고합니다. _Template에서dojo : onchange 이벤트를 전체 양식에 어떻게 연결합니까?

형성 _Widget

var self=this; 
dojo.connect(dijit.byId(this.form), 'onchange' ,function(){ 
    dijit.byId(self.save).setAttribute('disabled', false); 
    dojo.disconnect(dijit.byId(self.form)); 
}); 

에서

<form dojoAttachPoint='form'> 
    <input name='name' > 
    <button dojoAttachPoint="save">save</button> 
</form> 

내 시도 나는 잘못된 궤도에 건가요?

답변

1

감사합니다. Marcelo.

이 지금 작동 :)

수정 _Template

<div dojoAttachPoint="sourceForm" dojoType="dijit.form.Form" 
    encType="multipart/form-data" action="" method=""> 

    <input dojoAttachPoint="name" dojoType="dijit.form.ValidationTextBox" 
      type="text" name="name" required="true"/>  
    <button 
     dojoAttachPoint="save" dojoType="dijit.form.Button" 
     type="submit" value="Submit" disabled="true"> 
     Save 
    </button> 
</div> 

에게 수정 된 _Widget 부분

self=this; 
dijit.byId(this.save).setAttribute('disabled', true); 
var handle= dojo.connect(dojo.byId(this.sourceForm.domNode),'onchange',function() 
{ 
    dijit.byId(self.save).setAttribute('disabled', false); 
    dojo.disconnect(handle); 
}); 
2

비 dijit 노드에서 dijit.byId을 사용하고 있습니다. dojo.byId을 사용해야합니다.

또한 dojo.connectdojo.disconnect 함수를 호출 할 때 사용하는 처리기를 반환합니다.

+0

일을 내 눈을 여는 – Zounadire

관련 문제