xPage 日期时间选择器验证不适用于日期更改
xPage dateTime picker validation does not work on date change
这是我的 datePicker 控件,其中表达式验证工作正常:
<xp:inputText id="inputComboUntil">
<xp:this.converter><xp:convertDateTime pattern="MMM d, yyyy"></xp:convertDateTime></xp:this.converter>
<xp:this.validators>
<xp:validateExpression>
<xp:this.expression><![CDATA[#{javascript:var var1 = getComponent("inputDate").getValue();
if(var1!=null){
var var1D:NotesDateTime = session.createDateTime(var1);
var var2D:NotesDateTime = session.createDateTime("Today");
var2D.setNow();
if(var1D.timeDifference(var2D) < 0){
return false;
} else {
return true;
}
} else {
return true;
}}]]>
</xp:this.expression>
<xp:this.message><![CDATA[You cannot set date in the past]]></xp:this.message>
</xp:validateExpression>
</xp:this.validators>
<xp:dateTimeHelper id="dateTimeHelper3"></xp:dateTimeHelper>
</xp:inputText>
但是,如果我选择另一个正确的日期,则验证似乎适用于旧日期,因此会因验证错误而失败。我在 onChange 事件中什么都没有。假设选择新日期应该刷新验证。
注意:我在 Domino 8.5.3
上有这个问题
请尝试 getSubmittedValue()
,但请注意该值将是字符串,而不是日期。
基本部分刷新生命周期为:
- RESTORE_VIEW - 获取页面的服务器端映射(组件树)
- APPLY_REQUEST_VALUES - 将输入浏览器的字符串值推送到组件的
submittedValue
属性
- PROCESS_VALIDATIONS - 检查
submittedValue
属性可以转换为正确的数据类型并通过验证
- UPDATE_MODEL_VALUES - 转换
submittedValue
并写入 value
属性,清除 submittedValue
属性
- INVOKE_APPLICATION - 运行 SSJS
- RENDER_RESPONSE - 计算HTML输出
这是我的 datePicker 控件,其中表达式验证工作正常:
<xp:inputText id="inputComboUntil">
<xp:this.converter><xp:convertDateTime pattern="MMM d, yyyy"></xp:convertDateTime></xp:this.converter>
<xp:this.validators>
<xp:validateExpression>
<xp:this.expression><![CDATA[#{javascript:var var1 = getComponent("inputDate").getValue();
if(var1!=null){
var var1D:NotesDateTime = session.createDateTime(var1);
var var2D:NotesDateTime = session.createDateTime("Today");
var2D.setNow();
if(var1D.timeDifference(var2D) < 0){
return false;
} else {
return true;
}
} else {
return true;
}}]]>
</xp:this.expression>
<xp:this.message><![CDATA[You cannot set date in the past]]></xp:this.message>
</xp:validateExpression>
</xp:this.validators>
<xp:dateTimeHelper id="dateTimeHelper3"></xp:dateTimeHelper>
</xp:inputText>
但是,如果我选择另一个正确的日期,则验证似乎适用于旧日期,因此会因验证错误而失败。我在 onChange 事件中什么都没有。假设选择新日期应该刷新验证。 注意:我在 Domino 8.5.3
上有这个问题请尝试 getSubmittedValue()
,但请注意该值将是字符串,而不是日期。
基本部分刷新生命周期为:
- RESTORE_VIEW - 获取页面的服务器端映射(组件树)
- APPLY_REQUEST_VALUES - 将输入浏览器的字符串值推送到组件的
submittedValue
属性 - PROCESS_VALIDATIONS - 检查
submittedValue
属性可以转换为正确的数据类型并通过验证 - UPDATE_MODEL_VALUES - 转换
submittedValue
并写入value
属性,清除submittedValue
属性 - INVOKE_APPLICATION - 运行 SSJS
- RENDER_RESPONSE - 计算HTML输出