0

我正在尝试使用 ajax 制作动态 InputTextArea。我解释一下:我有一个 inputTextArea 用户可以在其中写他的文本,但我想限制这个字符的数量。因为我不想让它成为服务器端,基本上是通过在提交步骤检查这个输入的大小。我尝试使其动态化:当达到字符数量时,将剪切用户输入。

所以,我写了这段代码:

<h:inputTextarea value="#{bean.val}" id="area">
      <a4j:ajax event="keyup" listener="#{bean.cutoff}" execute="@this" render="area" />
</h ...>

在我的 bean 中,监听器做了非常基本的事情:

public void cutoff() {
    if(val.length() > 100)
            val = val.substring(0, 100);
}

当我运行它时,我遇到了以下问题:每次我输入一个字母时,它都会失去对 inputTextArea 的关注。所以真的很无聊。

我试图在我的 a4j:ajax 中添加一个属性:

<a4j:ajax ... onbeforedomupdate="area.focus();"/>

但它不起作用:我可以输入一些字母,但函数 (cutoff()) 不再调用。

所以我不知道该怎么办。第一个解决方案启动该功能但失去焦点,第二个解决方案重新获得焦点但不启动该功能(仅当我第一次这样做时)......

如果您有解决此问题的方法,那就太好了。

提前致谢。

4

0 回答 0