Ext에서 CheckBox 확장
Ext의 Checkbox를 사용할 때 항상 form과 함께 제출해야 하지만 Checkbox가 설정한 기본 제출 값은 "on"또는 "입니다. 백그라운드 코드에서 필드의 제출을 판단하고 값을 받아야 합니다. 우리의 일반적인 사용 습관에 부합되지 않습니다. 즉, 제출한 값을 대응하는 boolean 형식으로 직접 바꾸는 것입니다. 이를 위해 다음과 같은 사용 방식을 충족시키기 위해 확장과 봉인을 합니다.
justgin.bap.CheckboxEx = Ext.extend(Ext.form.Checkbox, {
trueValue: true,
falseValue: false,
hiddenField: {value:''},
onRender : function(ct, position){
justgin.bap.CheckboxEx.superclass.onRender.call(this, ct, position);
var hidden = this.el.insertSibling({tag:'input', type:'hidden', name: this.name}, 'before', true);
hidden.value = this.hiddenField.value;
this.hiddenField = hidden;
this.el.dom.removeAttribute('name');
this.on('check', this.onCheck);
},
setValue : function(v){
var me = this;
justgin.bap.CheckboxEx.superclass.setValue.call(this, v);
this.hiddenField.value = this.checked?me.trueValue:me.falseValue;
},
getValue : function(v){
return this.hiddenField.value;
},
onDestroy : function(){
Ext.destroy(this.wrap);
justgin.bap.CheckboxEx.superclass.onDestroy.call(this);
},
onCheck : function(me, checked){
this.hiddenField.value = checked?me.trueValue:me.falseValue;
}
});
두 개의 속성trueValue와falseValue를 확장하면 사용자가 선택하거나 취소할 때 제출한 값을 지정할 수 있습니다. 기본값은true와false입니다
필드를 다시 쓰는 onRender 방법은render에서 보여주는 html의 input 요소의 이름을 제거하고 같은 이름의hidden 요소를 삽입하여 제출할 값을 저장하고 사용 방식을 바꾸지 않는 전제에서from이 제출할 때 삽입된 새로운 요소를 제출할 수 있도록 합니다. 설정된 값이 백그라운드에 제출될 수 있도록 보장합니다
setValue와 getValue 방법을 다시 써서 접근할 때 데이터의 동기화를 보장합니다
자주 사용하는 Ext에서 대상을 만드는 방법은 두 가지가 있습니다: new justgin.bap.CheckboxEx () 와 Ext.create ({xtype:'checkbox'}) 는 사용자가 두 번째 방식을 사용할 때 확장된 대상을 만들려면 클래스의 성명 후에 대상 유형의 등록 문장을 넣으면 됩니다
Ext.reg('checkbox', justgin.bap.CheckboxEx);
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다른 사람의 웹사이트 편집: contenteditable 및 designMode그래도 우리가 그렇게 할 수 있다고 생각하는 것은 멋진 일입니다. 제가 강조하고 싶었던 일종의 관련 API가 실제로 몇 개 있기 때문에 오늘 그것을 가져왔습니다. contenteditable는 "true" 값이 할당...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.