我有一个numberfield
输入,当用户点击回车键时我想要失去焦点。
这是当前的配置:
{
xtype: 'numberfield',
minValue: 0,
maxValue: 99999,
hideTrigger: true,
keyNavEnabled: false,
mouseWheelEnabled: false,
enableKeyEvents: true,
listeners: {
specialkey: function(f, e) {
if (e.getKey() == e.ENTER)
f.blur();
}
}
}
specialkey
处理程序工作,按预期调用blur()
,但唯一的结果是插入符号从输入中消失(表示DOM文本输入元素已模糊)。该字段仍然包含所有x-form-focus
等css类,并且检查对象显示私有hasFocus
属性仍然是真的。
有什么建议吗?
我已尝试在f.onBlur()
来电后明确致电blur()
,但没有任何区别。
(顺便说一下,该字段不属于某个表单,因此无需提交表单。)
答案 0 :(得分:3)
修复。该问题是由Ext.form.field.Trigger类中的奇怪行为引起的,当调用常规'triggerBlur()'
函数时,它们不会触发'blur()'
。非常有趣:
listeners: {
specialkey: function(f, e) {
if (e.getKey() == e.ENTER)
{
f.triggerBlur();
f.blur();
}
}
}
答案 1 :(得分:0)
这对我有用:
specialkey: function(field,events) {
if (events.getKey() == events.ENTER) {
var nextfld = field.nextSibling();
nextfld.focus(true,100);
}
}
特殊键 - 是一个组件的监听器,如textfield,textare,datefield等,
events.getKey - 获取用户键盘输入
events.ENTER - 我使用了这个,当" ENTER"在键盘
field.nextSibling - 字段是指当前组件,以及组件的nextSibling属性,用于告知谁将成为下一个组件
最后是nextfld.focus来聚焦下一个组件