如何在 XPages 中使用验证器验证复选框
How to validate a checkbox using validator in XPages
如何使用验证器服务器端验证复选框,以下代码验证输入框而不是复选框
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="document1" formName="Order"></xp:dominoDocument>
</xp:this.data>
<xp:checkBox text="Nop" id="checkBox1" required="true" value="#{document1.Option1}" checkedValue="1">
<xp:this.validators>
<xp:validateRequired message="click checkbox"></xp:validateRequired>
</xp:this.validators>
</xp:checkBox>
<xp:inputText id="inputText1" value="#{document1.Option2}">
<xp:this.validators>
<xp:validateRequired message="enter box"></xp:validateRequired>
</xp:this.validators>
</xp:inputText>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:messages id="messages1"></xp:messages>
</xp:view>
使用自定义验证器代替必需的参数和必需的验证器。
<xp:checkBox text="Nop" id="checkBox1" value="#{document1.Option1}" checkedValue="1">
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:
if (value != "1") {
this.setValid(false);
return "click checkbox";
}
return null;
}]]></xp:this.validate>
</xp:customValidator>
</xp:this.validators>
</xp:checkBox>
复选框以这种方式在服务器上得到验证。
只是一个解决方法,可能还有更好的解决方案。但是,如果没有其他帮助,您可以尝试使用第二个字段或范围变量:
想法 #1:不要使用验证器,而是让您的按钮代码查询复选框的提交值。如果这对你来说是 foien,请继续,否则退出。
想法 #2:不要将复选框绑定到 Notes 数据字段,而是使用它的 onclick 或 onchange 事件将正确的值写入 EditBox,后者又被验证
再次:这两个可能有更好的方法,但我还没有尝试过。 - 祝你好运!
如何使用验证器服务器端验证复选框,以下代码验证输入框而不是复选框
<?xml version="1.0" encoding="UTF-8"?>
<xp:view xmlns:xp="http://www.ibm.com/xsp/core">
<xp:this.data>
<xp:dominoDocument var="document1" formName="Order"></xp:dominoDocument>
</xp:this.data>
<xp:checkBox text="Nop" id="checkBox1" required="true" value="#{document1.Option1}" checkedValue="1">
<xp:this.validators>
<xp:validateRequired message="click checkbox"></xp:validateRequired>
</xp:this.validators>
</xp:checkBox>
<xp:inputText id="inputText1" value="#{document1.Option2}">
<xp:this.validators>
<xp:validateRequired message="enter box"></xp:validateRequired>
</xp:this.validators>
</xp:inputText>
<xp:button value="Label" id="button1">
<xp:eventHandler event="onclick" submit="true" refreshMode="complete">
<xp:this.action>
<xp:saveDocument var="document1"></xp:saveDocument>
</xp:this.action>
</xp:eventHandler>
</xp:button>
<xp:messages id="messages1"></xp:messages>
</xp:view>
使用自定义验证器代替必需的参数和必需的验证器。
<xp:checkBox text="Nop" id="checkBox1" value="#{document1.Option1}" checkedValue="1">
<xp:this.validators>
<xp:customValidator>
<xp:this.validate><![CDATA[#{javascript:
if (value != "1") {
this.setValid(false);
return "click checkbox";
}
return null;
}]]></xp:this.validate>
</xp:customValidator>
</xp:this.validators>
</xp:checkBox>
复选框以这种方式在服务器上得到验证。
只是一个解决方法,可能还有更好的解决方案。但是,如果没有其他帮助,您可以尝试使用第二个字段或范围变量:
想法 #1:不要使用验证器,而是让您的按钮代码查询复选框的提交值。如果这对你来说是 foien,请继续,否则退出。
想法 #2:不要将复选框绑定到 Notes 数据字段,而是使用它的 onclick 或 onchange 事件将正确的值写入 EditBox,后者又被验证
再次:这两个可能有更好的方法,但我还没有尝试过。 - 祝你好运!