我之前发布了一个类似的问题,但我正在寻找一种不同的方法。我有一个inputTextArea,我需要限制可以输入的字符数量以及显示使用的字符数量(例如:"使用31/50字符和#34;)。目前,我只是使用inputTextArea的属性来执行此操作,但是,这样,我只能计算剩余的字符数。下面是inputTextArea的图片以及执行此操作的代码。
<p:inputTextarea id="ogdGacOther" rows="1" style="vertical-align: top; width: 98% !important;" styleClass="preformatted" autoResize="false" value="#{rfeBean.rfe.targetOfficerReasonsForReferral.otherOgdGac}" disabled="#{!rfeBean.ogdGacReferralReasonsChecked[ReferralTemplateConstants.OGD_GAC_OTHER] or !raudUserSessionBean.raudUser.referMode or rfeBean.workItemMissing}"
counter="displayGacCharCount" maxlength="50" counterTemplate="{0} #{msg.rfeCharactersRemaining}">
<p:ajax event="change" process="@this" />
</p:inputTextarea>
<br/>
<h:outputText id="displayGacCharCount" />
我想知道是否有办法修改它以便显示使用的字符。计数器模板中的{0}是表示剩余字符数的数字。如果有人知道我可以使用{0}调用java方法的方法,我会很高兴。无论哪种方式,让我知道你认为最好的方法。我试图避免使用jQuery的任何javascript。
我试过这样的事情:
<h:outputText id="displayGacCharCount" value="#{rfeBean.methodToChangeCharRemainToCharUsed(valueForCharRemain({0})}" />
当我尝试这个时,我得到的错误是&#34; El Expression是不平衡的&#34;
答案 0 :(得分:-1)
利安,
这很简单,忘记计数器并获得字符串长度:
<p:inputTextarea id="ogdGacOther" rows="1" maxlength="50"
value="#{rfeBean.rfe.targetOfficerReasonsForReferral.otherOgdGac}">
<p:ajax event="keyup" update="displayGacCharCount" global="false"/>
<p:ajax event="keydown" update="displayGacCharCount" global="false"/>
<p:ajax event="keypress" update="displayGacCharCount" global="false"/>
</p:inputTextarea>
<h:outputText id="displayGacCharCount"
value="#{rfeBean.rfe.targetOfficerReasonsForReferral.otherOgdGac.length()}"/>