我需要“好风格”的建议。我有一个从json填充的表单。填充表单的代码放在render侦听器中。问题是,许多表单元素都有更改侦听器,因此在填充表单时会触发这些更改侦听器。我想防止这种不必要的行为。
// many form elements with change listeners come here
listeners:{
render:function(){
var frm=this.getForm();
Ext.Ajax.request({
url:'../handlers/instruct.handler.php?id='+id,
method:'POST',
params:{action:'params'},
success:function(result,request){
json=Ext.decode(result.responseText,1);
frm.setValues(json); // form population
// triggers change listeners
}
});
}
}
PS。我使用ExtJs 4.2
答案 0 :(得分:2)
您可以暂停字段上的事件:
var fields = form.getForm().getFields();
fields.each(function(f) {
f.suspendEvents();
});
form.setValues(json);
fields.each(function(f) {
f.resumeEvents();
});