【问题标题】:xPage dateTime picker validation does not work on date changexPage dateTime 选择器验证不适用于日期更改
【发布时间】:2016-06-01 13:11:03
【问题描述】:

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

【问题讨论】:

    标签: javascript xpages lotus-notes


    【解决方案1】:

    改用getSubmittedValue(),但请注意该值将是字符串,而不是日期。

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

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

    【讨论】:

    • 也许这个xsn-p可以帮到你,那么当你想要组件的价值时,你不需要知道你在哪个阶段。 openntf.org/XSnippets.nsf/snippet.xsp?id=getcomponentvalue
    • 我想问题在于,如果您引用的是日期或数字,getSubmittedValue 和 getValue 将返回不同的数据类型。
    猜你喜欢
    • 2019-06-24
    • 2020-02-25
    • 1970-01-01
    • 2022-01-01
    • 2013-01-11
    • 2012-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多