[英]Linking JSF inputText with backing bean's field without showing its value
[英]get value of inputText on the fly without backing bean?
我可以在不支持bean的情况下即时获取inputTextare的值吗?
<p:dialog>
<p:inputTextarea rows="5" cols="30" value="#{_var.note}" />
<h:outputText id="remaining" value="#{util.getCharactersRemaining("varibale of textarea", 160)} characters left" />
public class UtilFacade {
public int getCharactersRemaining(String value, int maxLength) {
log.info("length: " + value.length());
return (maxLength - value.length());
}
}
为了在对话框中显示剩余的字符,我必须在Textarea中使用当前值来输入方法,而不必将值保存到备用bean! 我如何获得该价值?
您可以使用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函数并发送组件的ID,而不是发送整个组件(这将使JS可用于inputText组件和类似组件)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.