验证 xPage 上的编辑框输入文本长度
validate edit box input text length on xPage
当我启用字段长度验证时,它仅在我提交表单时验证...
<?xml version="1.0" encoding="UTF-8"?>
<xp:inputText id="inputText1">
<xp:this.validators>
<xp:validateLength maximum="20"
message="You can input max 20 characters">
</xp:validateLength>
</xp:this.validators>
</xp:inputText>
<xp:message id="message1" for="inputText1"></xp:message>
那么如何在用户输入第 21 个字符后显示错误消息?假设需要一个 CSJS 代码...
将客户端事件处理程序 "onkeyup" 添加到您的 inputText 控件:
<xp:eventHandler
event="onkeyup"
submit="false">
<xp:this.script><![CDATA[
thisEvent.srcElement.value = thisEvent.srcElement.value.substring(0, 20)
]]></xp:this.script>
</xp:eventHandler>
如有必要,它会将文本缩短到最大长度。
您可以将消息显示为警报
var element = thisEvent.srcElement;
if (element.value.length > 20) {
element.value = element.value.substring(0, 20);
alert("You can input max 20 characters");
}
或者您可以将客户端消息文本字段添加到您的 XPage,并在达到最大长度时用消息填充它
<xp:inputText id="inputText1">
<xp:this.validators>
<xp:validateLength maximum="20"
message="You can input max 20 characters">
</xp:validateLength>
</xp:this.validators>
<xp:eventHandler
event="onkeyup"
submit="false">
<xp:this.script><![CDATA[
var element = thisEvent.srcElement;
var message = document.getElementById("#{id:clientMessage}");
if (element.value.length > 20) {
element.value = element.value.substring(0, 20);
message.innerHTML = "You can input max 20 characters";
} else {
message.innerHTML = "";
}
]]></xp:this.script>
</xp:eventHandler>
</xp:inputText>
<xp:text id="clientMessage" value="" />
当我启用字段长度验证时,它仅在我提交表单时验证...
<?xml version="1.0" encoding="UTF-8"?>
<xp:inputText id="inputText1">
<xp:this.validators>
<xp:validateLength maximum="20"
message="You can input max 20 characters">
</xp:validateLength>
</xp:this.validators>
</xp:inputText>
<xp:message id="message1" for="inputText1"></xp:message>
那么如何在用户输入第 21 个字符后显示错误消息?假设需要一个 CSJS 代码...
将客户端事件处理程序 "onkeyup" 添加到您的 inputText 控件:
<xp:eventHandler
event="onkeyup"
submit="false">
<xp:this.script><![CDATA[
thisEvent.srcElement.value = thisEvent.srcElement.value.substring(0, 20)
]]></xp:this.script>
</xp:eventHandler>
如有必要,它会将文本缩短到最大长度。
您可以将消息显示为警报
var element = thisEvent.srcElement;
if (element.value.length > 20) {
element.value = element.value.substring(0, 20);
alert("You can input max 20 characters");
}
或者您可以将客户端消息文本字段添加到您的 XPage,并在达到最大长度时用消息填充它
<xp:inputText id="inputText1">
<xp:this.validators>
<xp:validateLength maximum="20"
message="You can input max 20 characters">
</xp:validateLength>
</xp:this.validators>
<xp:eventHandler
event="onkeyup"
submit="false">
<xp:this.script><![CDATA[
var element = thisEvent.srcElement;
var message = document.getElementById("#{id:clientMessage}");
if (element.value.length > 20) {
element.value = element.value.substring(0, 20);
message.innerHTML = "You can input max 20 characters";
} else {
message.innerHTML = "";
}
]]></xp:this.script>
</xp:eventHandler>
</xp:inputText>
<xp:text id="clientMessage" value="" />