如何在h:inputTextarea上设置maxlength属性

ser*_*nni 23 validation textarea maxlength jsf-2

我怎样才能限制长度<h:inputTextarea>?因为<h:inputText>它与maxlength属性工作正常.但是,此属性不可用<h:inputTextarea>.

Bal*_*usC 36

HTML5 + JSF 2.2+

如果您使用的是HTML5和JSF 2.2+,请将其指定为passthrough属性.

<html ... xmlns:a="http://xmlns.jcp.org/jsf/passthrough">

<h:inputTextarea value="#{bean.text}" a:maxlength="2000" />
Run Code Online (Sandbox Code Playgroud)

HTML5 + JSF 2.0/2.1

如果您使用的是HTML5,但尚未使用JSF 2.2,请使用OmniFaces Html5RenderKit识别JSF 2.0/2.1中的新HTML5属性.

<h:inputTextarea value="#{bean.text}" maxlength="2000" />
Run Code Online (Sandbox Code Playgroud)

HTML4

如果您使用的是HTML4,那么HTML本身就不支持它了.它仅支持<input>元素,而不支持<textarea>元素.这也是为什么这个HTML元素的JSF表示没有这样的属性.您需要使用JS和/或在服务器端使用JSF在客户端解决此要求.JS使您可以立即验证长度并忽略所有其他字符.JSF使您能够在客户端禁用或攻击JS代码的情况下对其进行验证.最好是两者的结合.

假设你有一个

<h:inputTextarea value="#{bean.text}" styleClass="max">
    <f:validateLength maximum="2000" />
</h:inputTextarea>
Run Code Online (Sandbox Code Playgroud)

这是你如何做jQuery

$('textarea.max').keyup(function() {
    var $textarea = $(this);
    var max = 2000;
    if ($textarea.val().length > max) {
        $textarea.val($textarea.val().substr(0, max));
    }
});
Run Code Online (Sandbox Code Playgroud)


Jig*_*shi 6

<h:inputTextarea  required="true" cols="50" rows="5" id=”aboutMe” value="#{person.aboutMe}”>
          <f:validateLength maximum="400" minimum="20"/>
    </h:inputTextarea>
Run Code Online (Sandbox Code Playgroud)

  • 不要在客户端脚本上中继. (5认同)