PrimeFaces日历在onblur事件中具有旧价值

时间:2014-01-07 15:59:57

标签: javascript jquery jsf primefaces calendar

我正试图通过以下方式将日历的值复制到inputText字段(不要问我原因):

<p:calendar id="cal" widgetVar="calWidget" 
    onblur="PF('inputWidget').val(PF('calWidget').val());"/>
<p:inputText id="text" widgetVar="inputWidget" />

我已经覆盖了PF函数,这一切都运行正常,问题是inputText获取了前一个选定日期,即inputText总是落后于值一步。这是预期的行为,有没有人有任何建议?感谢。

P.S。我也试过更简单的解决方案,同样的事情发生了:

onblur="PF('inputWidget').val(this.value);"

1 个答案:

答案 0 :(得分:1)

使用dateSelect事件:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">
<h:head />
<h:body>
    <h:form>
        <p:calendar value="#{myDate}">
            <p:ajax event="dateSelect" update="dateOutput" />
        </p:calendar>
        <p:inputText id="dateOutput" value="#{myDate}" />
    </h:form>
</h:body>
</html>