2013-03-15 2 views
2

우리의 응용 프로그램에는 텍스트 필드와 확인란이 있습니다. 기본적으로 텍스트 필드는 읽기 전용이어야합니다. 확인란을 선택하면 텍스트 입력란을 수정할 수 있어야합니다.extjs에서 텍스트 필드의 fieldCls를 동적으로 변경하는 방법은 무엇입니까?

우리는 위에서 언급 한 요구 사항을 수행 할 수 있습니다. 그러나 텍스트 필드는 사용자가 읽을 수있을 때 편집 할 수 없다고 생각해야합니다.

{ 
    xtype:'textfield', 
    id:'textfieldid', 
    readOnly:true, 
    fieldCls:'x-item-disabled' 
    ... 
} 


{ 
    xtype:'checkbox', 
    listeners:{ 
     change:function(thisCmp,newValue,oldValue){ 
       if(newValue==true){ 
        Ext.getCmp('textfieldid').addCls('x-item-disabled'); 
       } else { 
        Ext.getCmp('textfieldid').removeCls('x-item-disabled'); 
       } 
      } 
    } 
} 

그러나 일부는 내가 어떻게이 작업을 얻을 수 없습니다입니다 :

우리는 아래에이 코드를 사용했다.

누구든지 해결 방법을 제안 할 수 있습니까?

사실 그 필드를 제출해야합니다. 비활성화 된 경우 해당 필드는 제출되지 않습니다. 그래서 fieldCl을 동적으로 설정하려고했습니다.

+1

이 코드는 너무 나쁜 사람입니다. –

+0

확인. 나는 그것을 편집 할 것이다. –

+0

코드가 편집되었습니다. –

답변

2

setDisabled 방법을 Ext.form.field.Text으로 사용할 수 없습니까?

{ 
    xtype:'checkbox', 
    listeners:{ 
     change:function(thisCmp,newValue,oldValue){ 
      Ext.getCmp('textfieldid').setDisabled(newValue); 
     } 
    } 
} 

및 자동 setDisabled 방법으로 관리 할 텍스트 필드에 대한 설정으로 fieldCls:'x-item-disabled'을 지정하지 않고 처음에 장애인 등의 텍스트 필드를 렌더링 할 경우, 당신은이

같은 설정에 disabled : true을 사용할 수 있습니다
{ 
    xtype:'textfield', 
    id:'textfieldid', 
    disabled: true 
    ... 
} 

또 다른 옵션 :

처음 요 대신 잘못 될 수 비활성화 클래스를 지정 fieldCls 속성을 사용하는 이럴 수있어

{ 
    xtype:'textfield', 
    id:'textfieldid', 
    readOnly:true, 
    listeners : { 
     afterrender : function() { 
      this.addCls('x-item-disabled'); 
     }, 
     scope : this 
    } 
    ... 
} 
+0

사실 그 필드를 제출해야합니다. 비활성화 된 경우 해당 필드는 제출되지 않습니다. 그래서 fieldCl을 동적으로 설정하려고했습니다. –

+0

업데이트 된 답변 확인 –

+0

감사합니다. SilentSakky. 나는 두 번째 옵션 this.addCls ('x-item-disabled');를 시도했다. 잘 작동합니다. –

관련 문제