2013-08-22 27 views
1

我在p:inputText上使用Primefaces p:watermark。它的工作正常。
當過我更新組件的鬆動水印,即使存在p:inputTextp:在更新組件時即使沒有值,水印也會清除

<h:form id="reg_frm"> 
    <p:inputText id="name" value="#{user.name}"/> 
    <p:watermark value="your name" for="name" id="name_watermark" /> 

    <p:selectOneMenu value="#{user.drpvalue}"> 
     <f:selectItem itemLabel="One" itemValue="1"/> 
     <f:selectItem itemLabel="two" itemValue="2"/> 
     <f:selectItem itemLabel="three" itemValue="3"/> 
     <f:selectItem itemLabel="four" itemValue="4"/> 
     <p:ajax event="change" update="name name_watermark"/> 
    </p:selectOneMenu> 

</h:form> 

內沒有內容如何留住水印時,有在更新後的 p:inputText沒有內容?

注:Primefaces版本 - 3.5

+0

您是否嘗試過將'id'設置爲'watermark'(例如'name_watermark')並更新這兩個組件? 'update =「name name_watermark」'或者只是更新整個'@ form'。 –

+0

@XtremeBiker:作爲一個AJAX更新的實際情況,(請參閱現在的問題已更改的代碼)。它的工作時,我更新整個表單,但我不想這樣。 –

+0

只更新只有這兩個元素? –

回答

2

根據PrimeFaces水印展示:「水印通過在支持的瀏覽器中使用原生佔位符和在其他瀏覽器兼容性中使用JavaScript解決方案顯示有關輸入字段的提示。」

PrimeFaces可能會添加一些隱藏的JavaScript的東西到這是兩個組件(輸入和水印)的父母的元素。在你的情況下,這是你需要更新的形式。如果你不想這樣做,那麼圍繞這兩個元素添加一個新的面板組,並更新它,這將產生相同的效果。

1

試試這個屬性:

oncomplete="PrimeFaces.showWatermarks()" 

有人Primefaces用戶指南中給出。

+0

感謝您的答案,並從用戶指南中指出。但它沒有奏效。我不明白爲什麼?正如用戶指南中明確提到的那樣,僅將此屬性用於此目的。 –

相關問題