我正在尝试使用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())。
所以我不知道该怎么做。第一个解决方案启动功能但失去了焦点,第二个解决了焦点,但没有启动功能(仅当我第一次这样做时)......
如果您有解决此问题的方法,那就太棒了。
提前致谢。