h:inputText 上的条件 keyup 侦听器?
Conditional keyup listener on h:inputText?
我正在使用 JSF,我想在 InputText 元素的 keyup 事件上调用侦听器,但前提是输入文本长于 3 个字符。
我的代码是:
<h:inputText id="myId" styleClass="iceInpTxt uppercase" maxlength="15"
value="#{controller.model.value}">
<f:ajax event="keyup" listener="#{controller.listener}" render="anotherElement"/>
</h:inputText>
现在我正在我的侦听器中检查文本的长度,效果很好,但速度很慢。
是否有解决方法,如条件侦听器,仅在 inputText.length() > 3
时调用,在其他情况下忽略侦听器?
您可以简单地使用仅 returns 为真的 javascript-function,因此如果您的要求条件匹配则触发侦听器。
<h:inputText id="myId"
onkeyup="return checkLength(this)"
styleClass="iceInpTxt uppercase" maxlength="15"
value="#{controller.model.value}">
<f:ajax event="keyup" listener="#{controller.listener}" render="anotherElement"/>
</h:inputText>
javascript:
function checkLength(value){
return value.length > 3;
}
我正在使用 JSF,我想在 InputText 元素的 keyup 事件上调用侦听器,但前提是输入文本长于 3 个字符。
我的代码是:
<h:inputText id="myId" styleClass="iceInpTxt uppercase" maxlength="15"
value="#{controller.model.value}">
<f:ajax event="keyup" listener="#{controller.listener}" render="anotherElement"/>
</h:inputText>
现在我正在我的侦听器中检查文本的长度,效果很好,但速度很慢。
是否有解决方法,如条件侦听器,仅在 inputText.length() > 3
时调用,在其他情况下忽略侦听器?
您可以简单地使用仅 returns 为真的 javascript-function,因此如果您的要求条件匹配则触发侦听器。
<h:inputText id="myId"
onkeyup="return checkLength(this)"
styleClass="iceInpTxt uppercase" maxlength="15"
value="#{controller.model.value}">
<f:ajax event="keyup" listener="#{controller.listener}" render="anotherElement"/>
</h:inputText>
javascript:
function checkLength(value){
return value.length > 3;
}