2013-03-07 112 views
0

之前,我想触发双击bean的方法,并填写日历输入当前日期,任何检验之前:Primefaces日历 - 验证侦听

public void terminToCurrent(){ 
    measure.setTermin(new Date());  
} 

它:

   <p:calendar id="idInputDueDate" value="#{newMeasureMB.measure.termin}"      
         required="true" immediate="true">   

        <p:ajax event="dblclick" listener="#{newMeasureMB.terminToCurrent}" 
         global="false" update="idInputDueDate" immediate="true"/>  

       </p:calendar> 

在后台bean的方法只有当我删除“required = true”时才有效,否则验证总是会发生。我正在使用primefaces 3.3.1

+0

您是否需要在bean中的ajax监听器方法中指定特定事件作为参数? – SRy 2013-03-07 15:08:59

+0

我不这么认为:http://www.primefaces.org/showcase/ui/ajaxifyAction.jsf – Nikola 2013-03-07 15:43:08

回答

0

默认process属性p:ajax@this所以您的日历处理。将process="@none"添加到no p:ajax或从p:calendar中删除immediate="true",以便不处理其所需的验证(如果可以根据您的使用情况进行验证)。

+0

我已经添加了'process =“@ none”',但现在不调用支持bean的方法。我也尝试删除'immediate =“true”'并且再次没有成功 – Nikola 2013-03-07 13:27:32

+0

您从日历中删除了'immediate =“true”',而不是'p:ajax'? – partlov 2013-03-07 13:31:20

+0

是的,我从日历中移除了'immediate =“true”'。 – Nikola 2013-03-07 14:20:11