列表出现后是否可以从 ZK 组合框中移除焦点?

Is it possible to remove focus from ZK combobox after list appears?

IE 10 有一个错误 https://connect.microsoft.com/IE/feedback/details/841043/blinking-text-cursor-overlapping-with-div

但我需要以某种方式删除 ZKoss Combobox 中闪烁的光标。主要想法是从输入中移除焦点并尝试将其放入弹出列表。我认为如果焦点将被移除,闪烁的光标不会出现在弹出列表后面。

如何在弹出列表出现后从组合框的输入中移除焦点?可能吗?

我的提示是将组合框设置为只读。

如果不行,可以尝试高亮combobox的值

我用它来获得诀窍,在 .zul 中:

<combobox onFocus="@command('setFocusOnRow', evt=event)" />

这在视图模式中:

@Command
public void setFocusOnRow(@BindingParam("evt") Event event) {
    Combobox c = (Combobox) event.getTarget();
    // select: highlight the value
    c.select();
}

但是,我上次使用它时使用 Chrome 没有用。

看来我解决了!

重点是重写 ZKoss 的 Combobox.

方法 open
var _Cwgt = {};
zk.override(zul.inp.Combobox.prototype, _Cwgt, {
  open: function (silent) {
    var id = '#' + this.uuid + '-pp'; // get id of popup
    _Cwgt.open.apply(this, arguments); // call original
    jq(id).focus(); // give focus to the popup
  }
});