在列表出现后,是否可以从ZK组合框中删除焦点

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

本文关键字:组合 ZK 焦点 删除 列表 是否      更新时间:2023-09-26

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

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

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

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

如果不可能,可以尝试突出显示组合框的值。

我用这个来获得技巧。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
  }
});