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

标签 validation jsf-2 textarea maxlength

如何限制 <h:inputTextarea> 的长度?对于 <h:inputText>它适用于 maxlength属性。但是,此属性在 <h:inputTextarea> 中不可用。 .

最佳答案

HTML5 + JSF 2.2+

如果您使用 HTML5 和 JSF 2.2+,请将其指定为 passthrough attribute .

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

<h:inputTextarea value="#{bean.text}" a:maxlength="2000" />

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" />

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>

这是你如何做 jQuery
$('textarea.max').keyup(function() {
    var $textarea = $(this);
    var max = 2000;
    if ($textarea.val().length > max) {
        $textarea.val($textarea.val().substr(0, max));
    }
});

关于validation - 如何在 h :inputTextarea 上设置 maxlength 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4923573/

相关文章:

javascript - 我怎样才能像 Twitter 那样制作一个字符限制突出显示的文本区域?

validation - jquery 验证 - 如何设置一般错误消息

javascript - 人们如何在 2013 年验证他们的网站?

php - 用数据库记录填充文本区域

Javascript 长度值与文本区域不一致或不正确

javascript - 无法停止 primefaces 投票

ruby-on-rails-3 - 尽管经过验证,为什么 Rails 3.2 允许重复记录?

javascript - 简单的表单验证不起作用

java - 用数据填充 primefaces 数据表

java - 如何使用 Jsf validator 查看用户名和/或电子邮件是否已存在