javascript - Vaadin TextArea 将起始行号设置为 1

标签 javascript vaadin vaadin-flow

我的问题与 this post 有关在“旧”Vaadin 论坛中。我想将 Vaadin TextArea 的初始行号设置为 1,因此它看起来像一个 TextField。

提到的帖子有解决方案:

This requires a bit of JavaScript to fix. You need to set rows=1 to the internal element

<textarea part="value"></textarea>

不幸的是我不知道如何应用这个解决方案,因为我仍然是一个 JS 和 CSS 初学者。我们已经有一些 JS 代码调整 TextAreas(和其他组件),也许在这部分我需要添加一些代码?

const $_documentContainer = document.createElement('template');

$_documentContainer.innerHTML = `<dom-module id="our-project-text-area" theme-for="vaadin-text-area"> 
  <template> 
   <style> {            
      :host [part="input-field"] {
        font-weight: lighter;
      }
      
      :host [part="input-field"]::after {
        background-color: var(--mainColor);
      }
      
      :host([focused]:not([invalid])) [part="label"] {
        color: var(--mainColor);
      }
      }
    </style> 
  </template> 
 </dom-module>`;

document.head.appendChild($_documentContainer.content);

能否请您帮助我如何将属性添加到 TextAreas Shadow DOM 中的特定元素?

最佳答案

var textArea = new TextArea();
textArea.getElement().executeJs("this.shadowRoot.querySelector('textarea').rows = $0;", rows);

this指的是您使用 getElement() 选择的元素, 所以它将是 <vaadin-text-area> HTML 元素。

querySelector方法基本上是根据 CSS 选择器查找元素,在本例中我们要选择 <textarea>在阴影根内。您可以使用更具体的 CSS 或 [part='value'] 选择它。但自从rows属性是 textarea 标签固有的,我认为可以选择它。

关于javascript - Vaadin TextArea 将起始行号设置为 1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67986711/

相关文章:

javascript - 如何让 wordWrap 在 PIXIjs BitmapText 中工作

java - Guice 和 Servlet - 一般理解问题?

java - Vaadin - 布局调整大小重叠

java - 下载文件 vaadin

servlets - 当 Web 应用程序在 Maven 驱动的 Vaadin 14 Web 应用程序中启动时,将我的 Java 代码加载的数据或配置文件放在哪里

javascript - 瓦丁 14 : Resize TextArea after resizing window

javascript - 使用 JS 代码在幻灯片中垂直居中图像?

javascript - 将基于类的样式更改为内联样式

javascript - 如何修改移动设备和选项卡的引导轮播

java - 询问 "Update Dependencies from package.json"的对话框提供了 "Run ' npm install'"按钮,*之后* 我已经成功运行我的 Vaadin 14.0.8 应用程序