2012-05-08 11 views
8

दबाएं जब मुझे इनपुट टेक्स्ट में "एंटर" पर क्लिक करें, तो रीफ्रेश पृष्ठ के बिना, मुझे AJAX अनुरोध करने की आवश्यकता है। मेरा कोड यह है:जेएसएफ 2.0: एजेक्स अनुरोध ENTER

<h:form id="form-test"> 
    <p:growl id="messages" showDetail="true"/> 
    <p:inputText id="inputEnter" 
      onkeypress="if (event.keyCode == 13) {onchange(); return false; }" 
      value="#{bean.content}"> 
     <f:ajax event="change" listener="#{bean.save}" update="messages"/> 
    </p:inputText> 
</h:form> 

और सेम में मैं एक सरल विधि है:

public void save(AjaxBehaviorEvent event){ 
    ... 
} 

सभी काम करता है, लेकिन यह ताज़ा पेज !!! क्यूं कर ? मैं इसे कैसे सुलझाऊं ?

उत्तर

3

वहां पहले से ही एक प्रश्न के साथ एक धागा है किसी भी तरह तुम्हारा How to handle the ENTER keypressed to trigger an onBlur() event?

मैं सिर्फ

onkeypress="if (event.keyCode == 13) {e.preventDefault(); 
inputEnter.onchange(); return false; }" 

बदल जाएगा आप JQuery

$('#form-test\\:inputEnter').onchange(); 
+0

वही समस्या। पेज रीलोड !!!! – enfix

+1

मेरी समस्या हल हो गई। मुझे "क्लासिक दर्ज करें" पर डेटाटेबल के फ़िल्टर से एक ईवेंट को निकालना होगा। यह मेरा कोड 'ऑनकीडाउन =" पीएफ ('कार्बनिक समूह समूह') है। फ़िल्टर(); वापसी! (event.which === 13 || event.keyCode === 13); " धन्यवाद! – Uness

-1

का उपयोग मैं तुम्हें प्रस्तुत करना दर्ज करने की आवश्यकता लगता है की तरह param, इसलिए यह पूरे पृष्ठ को फिर से प्रस्तुत नहीं करता है।

<h:form id="form-test"> 
    <p:growl id="messages" showDetail="true"/> 
    <p:inputText id="inputEnter" 
      onkeypress="if (event.keyCode == 13) {onchange(); return false; }" 
      value="#{bean.content}"> 
     <f:ajax event="change" render="messages" listener="#{bean.save}" update="messages"/> 
    </p:inputText> 
</h:form> 
संबंधित मुद्दे