(這種需求多半是在輸入時要用輔助單元做輸入,而動作完之後,仍要再度取回焦點,)
我想,你一定想當然爾是在blur事件時做善後的,
example:
==================================
{ xtype:'textfield',
...
...
listeners:{
...
...
blur: function (textfield, e, o) {
//test if the target is helper control,and take back focus latter.
if(e.getTarget().id!=.......){
//if target id is not help control,forget it
}else{
//if target id is helper control, set the flag, wait for it
}
}
}
}
=====================================
但,不幸的,上例所取得的id,永遠是這個textfield.inputEl.dom.id,而不是取得焦點的extjs control id
,怎麼辦?
事實上,上面的例子,只要加個defer的動作,就差不多了,如:
==============================
Ext.Function.defer(function () {
if(e.getTarget().id!=.......){
}
},500);
=============================
是的,既言之,差不多,就是還是會有漏勾的地方,沒錯,在Chrome是很正常,但在IE & 火狐就掛了
就這樣放棄了嗎?
那就改一下xtype吧,用別的文字方塊類別,,把上述的程式碼改一下
==================================
{ xtype:'numberfield',
...
...
listeners:{
...
...
blur: function (textfield, e, o) {
//test if the target is helper control,and take back focus latter.
if(e.getTarget().id!=.......){
//if target id is not help control,forget it
}else{
//if target id is helper control, set the flag, wait for it
}
}
}
}
========不要問我為什麼,反正我就是試出了===================
這樣在firefox & IE就正常了
以上,大家加油囉
沒有留言:
張貼留言