jQuery यूआई v1.8rc3 में की शुरुआत से मेल लौटने के लिए, the autocomplete widget एक source विकल्प जो हो सकता है या तो एक को स्वीकार करता है स्ट्रिंग, एक सरणी, या एक कॉलबैक समारोह। यदि यह एक स्ट्रिंग है, तो विकल्प/सुझाव प्राप्त करने के लिए उस URL पर स्वतः पूर्ण हो जाता है। यदि कोई सरणी है, तो सरणी की शर्तों में किसी भी स्थिति में टाइप किए गए वर्णों की उपस्थिति के लिए, जैसा कि आपने बताया है, स्वत: पूर्ण खोज करता है। अंतिम संस्करण वह है जो आप चाहते हैं - कॉलबैक फ़ंक्शन।
स्वत: पूर्ण प्रलेखन से:
तीसरे भिन्नता, कॉलबैक, सबसे लचीलापन प्रदान करता है, और स्वत: पूर्ण करने के लिए किसी भी डेटा स्रोत से कनेक्ट करने के लिए इस्तेमाल किया जा सकता है। कॉलबैक दो तर्क प्राप्त करता है:
• request
ऑब्जेक्ट, "टर्म" नामक एक ही संपत्ति के साथ, जो वर्तमान में टेक्स्ट इनपुट में मूल्य को संदर्भित करता है।उदाहरण के लिए, जब उपयोगकर्ता ने एक पूर्ण क्षेत्र में "नया यो" दर्ज किया जो स्वत: पूर्ण करने के लिए सेट है, तो request.term
"नया यो" रखेगा।
• ए response
फ़ंक्शन, एक कॉलबैक जो उपयोगकर्ता को सुझाव देने के लिए डेटा रखने के लिए एक ही तर्क की अपेक्षा करता है। यह डेटा प्रदत्त अवधि के आधार पर फ़िल्टर किया जाना चाहिए, और सरल स्थानीय डेटा के लिए अनुमत प्रारूप में एक सरणी होना चाहिए: लेबल/मूल्य/दोनों गुणों के साथ स्ट्रिंग-ऐरे या ऑब्जेक्ट-ऐरे।
उदाहरण कोड:
var wordlist= [ "about", "above", "across", "after", "against",
"along", "among", "around", "at", "before",
"behind", "below", "beneath", "beside", "between",
"beyond", "but", "by", "despite", "down", "during",
"except", "for", "from", "in", "inside", "into",
"like", "near", "of", "off", "on", "onto", "out",
"outside", "over", "past", "since", "through",
"throughout", "till", "to", "toward", "under",
"underneath", "until", "up", "upon", "with",
"within", "without"] ;
$("#input1").autocomplete({
// The source option can be an array of terms. In this case, if
// the typed characters appear in any position in a term, then the
// term is included in the autocomplete list.
// The source option can also be a function that performs the search,
// and calls a response function with the matched entries.
source: function(req, responseFn) {
var re = $.ui.autocomplete.escapeRegex(req.term);
var matcher = new RegExp("^" + re, "i");
var a = $.grep(wordlist, function(item,index){
return matcher.test(item);
});
responseFn(a);
}
});
कुछ प्रमुख बिंदु:
$.ui.autocomplete.escapeRegex(req.term);
करने के लिए कॉल पलायन खोज पद ताकि टेक्स्ट में कहीं भी regex-सार्थक शब्द टाइप किया है कि उपयोगकर्ता द्वारा सादे पाठ के रूप में माना जाता है। उदाहरण के लिए, डॉट (।) Regex के लिए सार्थक है। मैंने स्वत: पूर्ण स्रोत कोड पढ़कर इस से बचने के लिए रेगेक्स फ़ंक्शन को सीखा।
new Regexp()
के साथ लाइन। यह^(सर्कफ्लेक्स) के साथ शुरू होने वाली रेगेक्सपी निर्दिष्ट करता है, जिसका तात्पर्य है, यह तभी मेल खाएगा जब टाइप किए गए वर्ण सरणी में शब्द की शुरुआत में दिखाई देते हैं, जो आप चाहते थे। यह "i" विकल्प का भी उपयोग करता है जो एक केस-असंवेदनशील मिलान का तात्पर्य है।
$.grep()
उपयोगिता केवल प्रदान की गई सरणी में प्रत्येक शब्द पर प्रदान किए गए फ़ंक्शन को कॉल करती है। इस मामले में फ़ंक्शन बस यह देखने के लिए regexp का उपयोग करता है कि सरणी में शब्द टाइप किए गए के लिए एक मिलान है या नहीं।
- आखिरकार, प्रतिक्रिया के परिणामस्वरूप प्रतिक्रिया एफएन() का आह्वान किया जाता है।
काम कर डेमो:
बस एक ध्यान दें:: मैं इस बिंदु पर बहुत अपरिपक्व होने के लिए स्वत: पूर्ण पर दस्तावेज़ प्राप्त http://jsbin.com/ezifi
यह कैसा लग रहा है। मुझे ऐसा उदाहरण नहीं मिला जो इसने किया, और मुझे कामकाजी डॉक्टर नहीं मिला जिस पर। सीएसएस फाइलें आवश्यक थीं या कौन सी। सीएसएस कक्षाओं का उपयोग किया जाएगा। मैंने यह सब कोड का निरीक्षण करने से सीखा।
भी देखें, intrducing jsbin.com के लिए how can I custom-format the Autocomplete plug-in results?
हेनचैन के पास जीमेल के लिए खोज http: // stackoverflow जैसे समाधान है।कॉम/प्रश्न/2382497/jquery-autocomplete-plug-in-search-config/2405646 # 2405646 –