Вы можете сделать это с помощью метода JavaScript (не нужно переходить на сервер).Вот пример:
<script type="text/javascript">
function getRemainingChars(textArea, maxLength) {
var actualText = textArea.value;
if (actualText.length > maxLength) {
textArea.value = actualText.substring(0, maxLength);
}
var remainingChars = (maxLength > actualText.length) ? maxLength - actualText.length : 0;
document.getElementById("frmMyPage:txtRemainingChars").value = remainingChars;
}
</script>
<h:form id="frmMyPage">
<h:inputTextArea id="txtTextArea" cols="50" rows="10" onkeyup="getRemainingChars(this, 500);" />
<br />
<h:outputText id="txtRemainingChars" />
</h:form>
Вы можете получить более подробную информацию о keydown
, keypress
и keyup
функциях javascript здесь (в этом случае я предпочитаю проверить текстна событие keyup).Также вы можете изменить функцию JavaScript и отправить идентификатор вашего компонента вместо отправки всего компонента (это сделает JS доступным для компонента inputText и аналогичных ему).