2015-04-08 45 views
0

我有一个网格单元格编辑器的问题。我有单元验证,并且我需要防止它们在发生验证错误时失去焦点。这就是我正在做它:当您尝试点击任何地方在网格之外,或者尝试使用Tab键选择下一个单元格ExtJS网格单元格编辑器,防止焦点松散问题

blur: function (field, event) { 
          if (field.value > field.maxValue || field.value < field.minValue) { 
           field.focus(); 
           return false; 
          } 
         }, 
specialkey: function (field, event) { 
          if (event.getKey() == 9) { 
           if (field.value > field.maxValue || field.value < field.minValue) { 
            field.focus(); 
            return false; 
           } 
          } 
         } 

这部分工作正常病例。问题是如果你点击另一个单元格,我仍然会失去焦点。这是什么调试显示:

cell_1 - blur, cell_1 - focus, cell_2 - blur, cell_2 - focus 

有没有人有类似的问题?
另外有点让人困惑的是,如果您将断点放入“模糊”侦听器,它将起作用!调试将显示:cell_1 - 模糊,没有其他事件。如果返回false这里将取消该版

this.cellEditing = new Ext.grid.plugin.CellEditing({ 
     clicksToEdit : 1, 
     listeners : { 
      beforeedit : function (editor, e) { 
       // do your valdiation here : 
       return (e.record.get('your_field') != 'aaa'); 
      } 
     } 
    }); 

回答

1

你应该做的beforeedit事件cellediting插件(至少在ExtJS的4)您的验证。