Sembunyikan inputText saat kehilangan fokus dengan p:inplace

formulir saya terlihat seperti itu:

        <p:inplace>  
            <h:inputText id="description" value="#{cc.attrs.description}" /> 
        </p:inplace> 

Ketika pengguna mengklik Teks p:inplace, inputText akan ditampilkan untuk mengedit nilainya.

Bagaimana cara menyembunyikan inputText atau p:inplace ketika pengguna mengklik di tempat lain atau kontrolnya sendiri kehilangan fokus.

Terima kasih.


person Briefkasten    schedule 05.10.2013    source sumber


Jawaban (1)


Gunakan acara blur di atas inputText, dengan meneruskan nilai id ke acara tersebut:

<p:inplace widgetVar="basic_#{cc.id}">
    <p:inputText value="#{cc.attrs.description}" id="description">
        <p:ajax event="blur" oncomplete="basic_#{cc.id}.hide();" />
    </p:inputText>
</p:inplace>
person Xtreme Biker    schedule 05.10.2013
comment
Jawaban ini akan lebih baik jika memperhitungkan fakta bahwa ini adalah bagian dari komponen komposit dan dengan demikian dapat dimasukkan beberapa kali dalam tampilan yang sama dan dengan demikian dapat menyebabkan tabrakan pada nama widgetVar. Solusinya adalah: sertakan sesuatu yang unik seperti #{cc.id} atau lebih dalam nama var widget seperti widgetVar="basic_#{cc.id}" dan referensikan seperti oncomplete="basic_#{cc.id}.hide()". - person BalusC; 06.10.2013
comment
@BalusC benar! Saya bahkan tidak melihatnya sebagai komposit... Diperbarui ;-) - person Xtreme Biker; 07.10.2013