You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不使用getElement方法的情况下为Vaadin 8 TextField设置属性

解决方案

getElement()是Vaadin 10及后续Flow版本才提供的API,Vaadin 8的组件体系没有该接口,你可以直接用Vaadin 8原生的方法实现需求:
把报错的代码行

nameField.getElement().setAttribute("focus-target", "");

直接替换为:

nameField.setAttribute("focus-target", "");

TextField的父类AbstractComponent提供的setAttribute(String 属性名, String 属性值)方法,会直接将自定义属性添加到客户端渲染的对应DOM元素上,完全满足你添加focus-target属性的需求。

如果需要对DOM做更复杂的自定义操作,也可以通过调用客户端JS实现:

Page.getCurrent().getJavaScript().execute(
    "document.querySelector('.v-textfield').setAttribute('focus-target', '');"
);

第一种方案已经足够覆盖绝大多数常规场景,不需要额外编写JS代码。


内容的提问来源于stack exchange,提问作者Andferdd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 20:06:03