MTU

2013-02-19 11 views
18

MTU 2.0, Mojarra 2.0.1, PrimeFaces 3.4.1 BuradaMTU

giriş metinden anahtarıdır girmek bir destek fasulye yöntemi çağırmak için beklenen bir p:inputText bileşeni fasulye yöntemi olduğunu enter çağırarak bastırdı.

<p:inputText id="commentInput" rendered="#{status.haveComment}" 
    value="#{statusBean.newComment}" 
    onkeypress="if (event.keyCode == 13) { onchange(); return false; }"> 
    <f:ajax event="change" listener="#{statusBean.test}" /> 
</p:inputText> 

fasulye destek yöntemini sahipken:

public void test(AjaxBehaviorEvent event) { 
    System.out.println("Pressed enter!"); 
} 

tuşuna basıldığında girmek ancak bundan daha fazlasını olduğundagösterilir yöntemini aradığını; beklenmedik davranış durum:

--Click input text 
----Type some letters 
------Click somewhere else in the page 
--------CONSOLE: Pressed enter! 

Ben ajax event=change nasılsa bir değişiklik algılar ve yöntemini çağırır düşünüyorum. Bu p:inputText bileşenini Facebook veya başkaları gibi uygun bir yorum toplama bileşenine dönüştürmek nasıl?

cevap

30

Bu, onchange etkinliğinin HTML'de nasıl işlediği yoludur. Girdi öğesindeki metin değiştiğinde, ancak bileşen odağı kaybettiğinde (sayfadaki başka bir yere tıkladığınız andaki durumunuzda) tetiklenir. fasulye desteklemekte

<p:remoteCommand name="test" actionListener="#{statusBean.test}"/> 
<p:inputText id="commentInput" rendered="#{status.haveComment}" 
    value="#{statusBean.newComment}" 
    onkeypress="if (event.keyCode == 13) { test(); return false; }"/> 

ve:

Sen test yöntemi için p:remoteCommand tanımlayabilir ve sadece yazabilir Bir çekicilik gibi çalışıyor

public void test() { 
System.out.println("Pressed enter!"); 
} 
+0

! Teşekkürler! –

+0

Bu arkadaşımla ilgili bir sorunum var [burada] (http://stackoverflow.com/q/14990692/1659451) –

+0

Teşekkür ederiz. Bu çok yararlı. –

İlgili konular