/**
* 该表单提供对各个元素回车验证并且自定切换到下一个元素功能
*/
Ext.define("Ext.ux.form.Panel",{
extend:"Ext.form.Panel",
isValid:function(){
var isValid = true;
Ext.Array.each(this.items.items,function(item,index){
if(!item.isValid()){
isValid = false;
item.focus();
return false;
}
});
return isValid;
},
initComponent:function(){
var me = this;
var specialKey = function(field,e,eOpts){
if (e.getKey() == Ext.EventObject.ENTER) {
var isValid = true;
if(!field.isValid()){
field.focus();
}else{
if(me.isValid()) {
me.getForm().updateRecord();
}
}
};
if(field.old_specialKey){
field.old_specialKey(field,e,eOpts);
}
};
Ext.Array.each(me.items,function(item,index){
if(!Ext.isDefined(item.enterChange) || item.enterChange){
if(item.listeners){
if(!item.listeners.specialKey){
item.listeners.specialKey = specialKey;
}else{
item.old_specialKey = item.listeners.specialKey;
item.listeners.specialKey = specialKey;
}
}else{
item.listeners = {specialKey:specialKey};
}
}
});
me.callParent(arguments);
}
});
如果你想让某个元素不提供回车,设置enterChange:false
本文介绍了一个Ext.ux.form.Panel组件,该组件能够实现表单中各元素的回车键验证及自动切换功能。当按下回车键时,会检查当前字段的有效性;若有效,则继续验证后续字段,并在所有字段都有效的情况下更新记录。
3597

被折叠的 条评论
为什么被折叠?



