正如 stwissel 已经说过的,有两种方法可以验证您的 inputField、clientSide 和 ServerSide。要根据用户输入来操作验证,我会使用 ClientSide javascript 代码使其更加“即时”,然后在服务器端再次验证提交时的整个文档。
这是一个简短的示例,我将如何使用 dojo 在 ClientSide 上构建它。但是,当用户保存/提交数据时,请不要忘记在服务器上再次验证数据,以避免由于您的客户端 javascript 操作(或某人只是在他的浏览器中打开 javascript)而损坏数据。
<xe:djCheckBox id="select" value="#{viewScope.check}"
checkedValue="yes" uncheckedValue="no">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="onChange">
<xp:this.value><![CDATA[#{javascript:return "var input = dijit.byId('"+getClientId('required')+ "'); input.required = !input.required;"}]]></xp:this.value>
</xp:dojoAttribute>
</xp:this.dojoAttributes>
</xe:djCheckBox>
<xp:inputText id="required" dojoType="dijit.form.ValidationTextBox">
<xp:this.dojoAttributes>
<xp:dojoAttribute name="required"
value="true">
</xp:dojoAttribute>
</xp:this.dojoAttributes>
</xp:inputText>
在此示例中,我使用 dojo 将我的 inputField 转换为dijit.form.ValidationTextBox
允许我更改它的required
属性。道场验证。