【问题标题】:Vaadin How to SelectAll() in ComboBox field?Vaadin 如何在 ComboBox 字段中选择 All()?
【发布时间】:2016-06-08 22:36:29
【问题描述】:

Vaadin 7.6.2

在 ComboBox 字段中执行 selectAll() 的最佳方法是什么?

【问题讨论】:

    标签: vaadin vaadin7


    【解决方案1】:

    如果您的意思是选择 ComboBox 的输入字段中的所有文本,则没有内置支持。

    最优雅的解决方案是创建您自己的 Vaadin 扩展,该扩展将提供服务器端 API 用于在 ComboBox 中选择文本。

    最简单但有点hackish的解决方案是为您的ComboBox定义一个唯一ID:

    comboBox.setId("my-combobox");
    

    并使用 Vaadin 的 JavaScript API 执行 JavaScript sn-p,在客户端选择文本:

    JavaScript.eval("setTimeout(function() { document.getElementById('my-combobox').firstChild.select(); }, 0);");
    

    我对此进行了快速测试,似乎至少可以在 Chrome、Safari 和 Firefox 中使用。

    【讨论】:

    • 不起作用。我在我的字段上应用了 setId(),当我针对其中一个 ID 运行 JavaScript.eval 方法时,什么也没有发生。我还缺少另一个步骤吗? (使用 Safari)
    • 这很奇怪,我再次测试并在 OS X Safari 上运行良好。您的用例是什么,在什么情况下您需要进行选择?
    • 实际上,它似乎有效,但并非始终如一,这很奇怪。事实证明,我现在可以不用它,但希望看到 Vaadin 人在 ComboBoxes 上实现 selectAll()。
    • 我对 eval 内部的 JS 做了一些改进,也许它有助于使其始终如一地工作。如果您愿意,您可以向dev.vaadin.com 创建有关此功能请求的票证。谢谢!
    • 仍然不工作,不知道为什么。如果我摆脱“firstChild”,它的行为就像它想要工作一样,但实际上并非如此。不过感谢你的努力。 +1
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多