【问题标题】:XPAGE validateexpression problem in a time field时间字段中的 XPAGE validateexpression 问题
【发布时间】:2020-02-14 12:06:32
【问题描述】:

我试图阻止用户在申请表中插入超过 2 小时的时间,这是我的代码: 我已经在“Heure_fin”字段中编写了我的验证代码,这是一个时间字段,用于计算“Heur_fin”和“heur_debut”之间的差异

<xp:inputText value="#{document1.Heure_fin}"
                id="heur_fin"
                style="width:31.0%;font-family:Verdana,sans-serif;height:20px"
                disableClientSideValidation="true">
                <xp:this.converter>
                    <xp:convertDateTime type="time"
                        timeStyle="short">
                    </xp:convertDateTime>
                </xp:this.converter>

                <xp:this.validators>


                    <xp:validateRequired message="required field"></xp:validateRequired>


                    <xp:validateExpression>


<xp:this.expression><![CDATA[#{javascript:
var dStart:NotesDateTime =session.createDateTime(getComponent("date_debut1").getValue());
var hStart:NotesDateTime =session.createDateTime(getComponent("heur_debut1").getValue());
var dateTimeStart:NotesDateTime=session.createDateTime(dStart.getDateOnly()+" "+hStart.getTimeOnly())
var hEnd:NotesDateTime=session.createDateTime(getComponent("heur_fin").getValue());
var dateTimeEnd:NotesDateTime=session.createDateTime(dStart.getDateOnly()+" "+hEnd.getTimeOnly())
var hours = dateTimeEnd.timeDifferenceDouble(dateTimeStart)
if ((hours/3600)<=2)

{
     return true
}else
    return false

}]]></xp:this.expression>
                        </xp:validateExpression>
                    </xp:this.validators>
                    <xp:dateTimeHelper id="dateTimeHelper4"></xp:dateTimeHelper>


                </xp:inputText>

但我不断收到以下错误消息: 表达式无效。 表达式未返回布尔值。

我已将相同的代码放在计算字段中,它工作正常, 有什么我遗漏的地方吗,感谢您的帮助。 问候,

【问题讨论】:

    标签: validation expression xpages


    【解决方案1】:

    在验证器中,您需要使用getSubmittedValue() 而不是getValue()。请参阅我所做的这篇博文,以提供有关 XPage 的部分刷新 (JSF) 生命周期的更多详细信息,这应该有助于解释为什么 https://www.intec.co.uk/understanding-partial-execution-part-three-jsf-lifecycle/

    【讨论】:

    • 您好,谢谢您的回答,我试过了,但没有成功,对不起,同样的问题
    • 我尝试将获取值更改为“getComponent("heur_fin").getSubmittedValue()”并尝试了“this.getSubmittedValue()”但没有成功,请原谅我的浅薄经验页面。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多