我正在使用 Richfaces,我正在尝试<textArea>
使用 maxlength 属性设置,但 JSF 似乎没有从 h:inputTextArea 传递 maxlength 属性。任何想法为什么会发生这种情况?
<h:inputTextarea maxlength="100" cols="20" rows="10" value="#{bean.description}" id="description" />
maxlength
不存在于h:inputTextarea
(请参阅文档)。
要添加验证器消息,请尝试
<h:inputTextarea >
<f:validateLength maximum="100"></f:validateLength>
</h:inputTextarea>
这并不是真正的 RichFaces 问题,而是涉及 JSF。之前也得到了更好的回答。请参阅@BalusC 的回答 如何在 h:inputTextarea 上设置 maxlength 属性
我们的解决方案是在包含 maxlength 数字的 textarea 前面立即放置一个额外的 span。
<span class="maxlength">35</span>
你给那个类一个“显示:无;” 规则隐藏它。然后使用 JavaScript 查找每个 span.maxlength 并将其中的数字移动到 textarea 的 maxlength 属性中(使用 jQuery):
$('span.maxlength').each(function(){
$this = $(this);
$this.next('textarea').attr('maxlength',$this.html());
$this.remove();
});
完成后,运行其他限制在 textareas 中输入的 JavaScript。
哈基?是的。但是不支持 maxlength 的 JSF 是 hacky。