javascript - xPage 日期时间选择器验证不适用于日期更改

标签 javascript xpages lotus-notes

这是我的 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 上遇到这个问题

最佳答案

尝试使用 getSubscribedValue(),但请注意该值将是字符串,而不是日期。

基本的部分刷新生命周期是:

  1. RESTORE_VIEW - 获取页面的服务器端 map (组件树)
  2. APPLY_REQUEST_VALUES - 将浏览器中输入的字符串值推送到组件的 subscribedValue 属性
  3. PROCESS_VALIDATIONS - 检查 subscribedValue 属性是否可以转换为正确的数据类型并通过验证
  4. UPDATE_MODEL_VALUES - 转换 subscribedValue 并写入 value 属性,清除 subscribedValue 属性
  5. INVOKE_APPLICATION - 运行 SSJS
  6. RENDER_RESPONSE - 计算要输出的 HTML

关于javascript - xPage 日期时间选择器验证不适用于日期更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37569705/

相关文章:

time - 比较格式为 HH :MM AM/PM in Lotusscript 的两个字符串字段

web-services - 如何在 Lotus Notes 中使用 RESTful Web 服务

python - 从 win32com 捕获标准输出?

javascript - 使用jquery获取函数之前的id值

php - 在 PHP echo 语句中使用 JS 'onclick' 函数并嵌入 XML 获取的正确语法

php - 上传前检查文件大小

css - 如何更改 xPage 组合框下拉箭头的背景颜色?

javascript - 如何在 ES6 中注入(inject)指令 Controller

javascript - xPages 倒数计时器

javascript - xpages 将多值字段更新为邮件发件人,无法发送给多个用户