JSF h: inputTextarea в HTML textArea — передача атрибута maxlength

Я использую Richfaces и пытаюсь создать <textArea> с установленным атрибутом maxlength, но JSF, похоже, не передает атрибут maxlength из h: inputTextArea. Есть идеи, почему это происходит?

<h:inputTextarea maxlength="100" cols="20" rows="10" value="#{bean.description}" id="description" />

person Wojtek Owczarczyk    schedule 31.08.2011    source источник


Ответы (3)


maxlength не существует на h:inputTextarea (см. документ).

Чтобы добавить сообщение валидатора, попробуйте

<h:inputTextarea >
  <f:validateLength maximum="100"></f:validateLength>
</h:inputTextarea>
person Jean-Charles    schedule 31.08.2011
comment
Итак, есть ли способ передать такой атрибут? Я попробовал ‹f:attribute ›но это не сработало. У меня есть функция javascript, которая запрещает ввод символов, превышающих максимальную длину, в textArea - person Wojtek Owczarczyk; 31.08.2011
comment
Используя javascript, вы можете попробовать что-то вроде <h:inputTextarea onkeyup="return checkMaxLength(this.value.length, 100);"> с function checkMaxLength(length, maxLength){return length<=maxLength;}. Будьте осторожны, я не пробовал этот код, но следуйте идее... - person Jean-Charles; 31.08.2011

Наше решение состояло в том, чтобы поместить дополнительный диапазон непосредственно перед текстовой областью, содержащей число максимальной длины.

<span class="maxlength">35</span>

Вы даете этому классу "display: none"; правило, чтобы скрыть это. Затем вы используете JavaScript, чтобы найти каждый span.maxlength и переместить число внутри него в атрибут maxlength текстовой области (используя jQuery):

$('span.maxlength').each(function(){
    $this = $(this);
    $this.next('textarea').attr('maxlength',$this.html());
    $this.remove();
});

Как только это будет сделано, запустите свой другой JavaScript, который ограничивает набор текста в текстовых областях.

Хаки? Да. Но JSF, не поддерживающий maxlength, является хакерским.

person James Frank    schedule 21.05.2012

На самом деле это не проблема RichFaces, а касается JSF. На него также ответили лучше раньше. см. ответ @BalusC Как установить атрибут maxlength в h: inputTextarea

person Nikhil Silveira    schedule 18.06.2012