के साथ स्वत: पूर्ण मैं AJAX के साथ एक स्वत: पूर्ण का उपयोग करना चाहता हूं।लिफ्ट - अजाक्स सबमिशन
जब पाठ क्षेत्र में उपयोगकर्ता प्रकार कुछ, कुछ सर्वर द्वारा प्रदान की सुझाव दिखाई देते हैं
जब उपयोगकर्ता प्रेस (मैं एक डेटाबेस में सुझाव प्राप्त करने के लिए है): तो मेरा लक्ष्य है "दर्ज करें", स्वत: पूर्ण बॉक्स की तुलना में कहीं और क्लिक करता है, या जब वह कोई सुझाव चुनता है, तो टेक्स्टफील्ड में स्ट्रिंग सर्वर पर भेजी जाती है।
मैं पहली बार लिफ्ट द्वारा प्रदान की स्वत: पूर्ण विजेट का उपयोग करने की कोशिश की, लेकिन मैं तीन समस्याओं का सामना करना पड़ा:
- यह है, कि तुम मूल रूप से केवल सुझाव दिया मूल्यों प्रस्तुत कर सकते हैं कहने के लिए है एक विस्तारित चयन करने के लिए है ।
- इसका उपयोग AJAX के साथ नहीं किया जाना है।
WiringUI
के साथ संयुक्त होने पर यह छोटी हो जाती है।
तो, मेरा सवाल है: मैं jquery autocomplete को कैसे जोड़ सकता हूं और लिफ्ट में सर्वर से कैसे बातचीत कर सकता हूं। मुझे लगता है कि मुझे कुछ कॉलबैक का उपयोग करना चाहिए लेकिन मैं उन्हें मास्टर नहीं करता हूं।
अग्रिम धन्यवाद।
अद्यतन यहाँ एक पहले कार्यान्वयन मैंने कोशिश की है, लेकिन कॉलबैक काम नहीं करता:
private def update_source(current: String, limit: Int) = {
val results = if (current.length == 0) Nil else /* generate list of results */
new JsCmd{def toJsCmd = if(results.nonEmpty) results.mkString("[\"", "\", \"", "\"]") else "[]" }
}
def render = {
val id = "my-autocomplete"
val cb = SHtml.ajaxCall(JsRaw("request"), update_source(_, 4))
val script = Script(new JsCmd{
def toJsCmd = "$(function() {"+
"$(\"#"+id+"\").autocomplete({ "+
"autocomplete: on, "+
"source: function(request, response) {"+
"response("+cb._2.toJsCmd + ");" +
"}"+
"})});"
})
<head><script charset="utf-8"> {script} </script></head> ++
<span id={id}> {SHtml.ajaxText(init, s=>{ /*set cell to value s*/; Noop}) } </span>
}
तो मेरा विचार था:
- एक
SHtml.ajaxText
क्षेत्र के माध्यम से चयनित परिणाम प्राप्त करने के जो एक जावास्क्रिप्ट फ़ंक्शन का उपयोग कर स्वत: पूर्ण सुझावों को अद्यतन करने के लिए एक स्वत: पूर्ण फ़ील्ड
- में लपेटा जाएगा
हाय, दुर्भाग्य से मैं लिफ्ट 2.5 का उपयोग नहीं कर सकता। मैं 2.4 एम 4 लिफ्ट पर हूं। हालांकि, जो मैंने पहले ही उपयोग किया है, ऐसा लगता है कि 2.4 में पहले से ही कॉलबैक लागू किए गए हैं। आपके उत्तर के लिए धन्यवाद। –
मैंने उस समय के साथ अपना प्रश्न अपडेट किया जहां मैं अब अवरुद्ध हूं, किसी भी सुझाव का स्वागत है। –
मुझे यकीन नहीं है कि जब आप कहते हैं कि कॉलबैक काम नहीं करता है तो आपका क्या मतलब है। अद्यतन_सोर्स निष्पादित है? यदि हां, तो आपकी समस्या आपकी वापसी के साथ होने की संभावना है। आप एक एसिंक्रोनस कॉल कर रहे हैं, इसलिए बस JSON को वापस करना पर्याप्त नहीं है, ब्राउज़र नहीं जानता कि इसके साथ क्या किया जाए। आपको एक जेएससीएमडी वापस करने की आवश्यकता होगी जो एक क्रिया करता है, और उस क्रिया का परिणाम JQuery UI स्वत: पूर्ण होना चाहिए। –