दिलचस्प पोस्ट
ऐप बंद होने पर पुश नोटिफिकेशन स्विफ्ट में ताज़ा करने के लिए पुल का उपयोग कैसे करें? एनएसओपरेशन बनाम ग्रांड सेंट्रल डिस्पैच PostgreSQL के साथ संख्यात्मक () कैसे पता लगा सकता है कि मेरी खोल स्क्रिप्ट पाइप के माध्यम से चल रही है? ट्रिगर करने वाला ईवेंट जब बटन को एंड्रॉइड में दबाया जाता है CodeIgniter – क्यों xss_clean का उपयोग करें जावा के साथ पुनरावर्ती एक निर्देशिका से सभी फ़ाइलों की सूची NumPy सरणी JSON धारावाहिक नहीं है AngularJS घड़ी डोम परिवर्तन Java.lang.Thread.interrupt () क्या करता है? समान तत्व वाली सरणी को JavaScript में कई बार दोहराएं ऑब्जेक्ट फ़ील्ड के अनुसार ऑब्जेक्ट्स को व्यवस्थित करें एंड्रॉइड: स्लाइडिंग ड्रॉवर की ऊंचाई wrap_content के साथ सेट की जा सकती है? मर्केटर प्रक्षेपण पर पिक्सेल (एक्स, वाई) में अक्षांश / रेखांश बिंदु को कन्वर्ट करें

jQuery UI स्वत: पूर्ण विजेट खोज कॉन्फ़िगरेशन

मैं पहली या अंतिम नाम से उपयोगकर्ता लुकअप को लागू करने के लिए jQuery UI स्वत: पूर्ण विजेट का उपयोग करने में देख रहा हूं। ऐसा लगता है कि डिफ़ॉल्ट रूप से स्वत: पूर्ण वर्ण के अनुक्रम द्वारा शब्दों को दिखता है, कोई भी शब्द में इसका कोई फर्क नहीं पड़ता। इसलिए यदि आपके पास डेटा है, जैसे: javascript, asp, haskell और आप 'as' टाइप करते हैं, तो आपको तीनों मिलेगा। मैं इसे शब्द के केवल मैच शुरुआत के लिए चाहूंगा तो ऊपर दिए गए उदाहरण में आपको केवल 'asp' मिलता है क्या ऐसा करने के लिए स्वत: पूर्ण विजेट को कॉन्फ़िगर करने का कोई तरीका है?

आखिरकार यह पहले या अंतिम नाम की शुरुआत से मिलान करना बेहतर होगा जैसे कि यह जीमेल में है

नोट: मैं विशेष रूप से jQuery UI विजेट का उपयोग कर ऐसा करने का एक तरीका निकालने का प्रयास कर रहा हूं। चूंकि मैं अपनी परियोजना में पहले से ही jQuery UI का उपयोग कर रहा हूं, इसलिए मैं इसके साथ रहना और अपने वेब अनुप्रयोग में अतिरिक्त लाइब्रेरी जोड़ने की कोशिश नहीं कर रहा हूं।

वेब के समाधान से एकत्रित समाधान "jQuery UI स्वत: पूर्ण विजेट खोज कॉन्फ़िगरेशन"

JQuery UI v1.8rc3 में, स्वत: पूर्ण विजेट एक स्रोत विकल्प स्वीकार करता है जो एक स्ट्रिंग, एक सरणी या कॉलबैक फ़ंक्शन हो सकता है। यदि यह एक स्ट्रिंग है, तो विकल्प / सुझाव प्राप्त करने के लिए उस 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-meaningful शब्द सादा पाठ के रूप में समझा जाए। उदाहरण के लिए, डॉट (।) Regex के लिए सार्थक है। मुझे इस भागने के बारे में पता चला रीजजेक्स फ़ंक्शन, स्वत: पूर्ण स्रोत कोड को पढ़कर।
  • new Regexp() साथ लाइन यह एक regexp को निर्दिष्ट करता है ^ (सर्कमफ्लक्स) से शुरुआत है, जिसका अर्थ है, यह केवल तभी मिलान होगा जब टाइप किए गए अक्षर सरणी में शब्द की शुरुआत में दिखाई देते हैं, जो कि आप क्या चाहते थे। यह "i" विकल्प का भी उपयोग करता है जिसका अर्थ है एक केस-असंवेदनशील मैच।
  • $.grep() उपयोगिता केवल दिए गए फ़ंक्शन को प्रदान की गई सरणी में प्रत्येक शब्द पर कॉल करता है। इस मामले में फ़ंक्शन केवल regexp का उपयोग करता है यह देखने के लिए कि क्या सरणी में शब्द टाइप किया गया था, इसके लिए एक मैच है।
  • आखिरकार, responseFn () को खोज के परिणाम के साथ लागू किया जाता है

कार्य डेमो: http://jsbin.com/ezifi

यह किस तरह का दिखता है:

वैकल्पिक शब्द

बस एक नोट: मैं इस बिंदु पर सुंदर अपरिपक्व होने के लिए स्वत: पूर्ण पर दस्तावेज़ीकरण को ढूंढता हूं। मुझे ऐसा नहीं मिला उदाहरण, और मुझे वह काम डॉक्टर नहीं मिल सका जिस पर। Css फ़ाइलें आवश्यक थीं या कौन सी सीएसएस वर्गों का उपयोग किया जाएगा। मैं कोड का निरीक्षण करने से यह सब सीखा।

यह भी देखें, मैं स्वत: पूर्ण प्लग-इन परिणामों को कैसे अनुकूलित कर सकता हूं?

मैं देवब्रिज से स्वत: पूर्ण का उपयोग करता हूं http://www.devbridge.com/projects/autocomplete/jquery/

यह शुरुआती वर्णों से मेल खाता है, केवल

वैकल्पिक पाठ http://i46.tinypic.com/2ihq7pd.jpg

जहां तक ​​पहले नाम या अंतिम नाम के आधार पर मिलान किया जा रहा है, आपको पहले और अंतिम नाम के साथ एक लुकअप सूची प्रदान करना होगा।

उदाहरण उपयोग:

  var wordlist = [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ]; var acOptions = { minChars:2, delimiter: /(,|;)\s*/, // regex or character maxHeight:400, width:300, zIndex: 9999, deferRequestBy: 10, // miliseconds // callback function: onSelect: function(value, data){ //$('#input1').autocomplete(acOptions); if (typeof data == "undefined") { alert('You selected: ' + value ); }else { alert('You selected: ' + value + ', ' + data); } }, // local autosuggest options: lookup: wordlist }; 

lookup विकल्प जिसे आप स्वत: पूर्ण नियंत्रण को प्रारंभ करने के लिए पास करते हैं, एक सूची या वस्तु हो सकती है उपरोक्त एक साधारण सूची दिखाया यदि आप कुछ डेटा प्राप्त करना चाहते हैं जो सुझावों से जुड़ा हुआ है, तो lookup विकल्प किसी ऑब्जेक्ट को इस तरह बनाएं:

 var lookuplist = { suggestions: [ "Jan", "Feb", "Mar", "Apr", "May" ], data : [ 31, 28, 31, 30, 31, ] }; 

jsbin.com intrduing के लिए thx cheeso,

मैंने पहले और अंतिम नाम मैचों का समर्थन करने के लिए अपना कोड बढ़ाया है I

  $("#input1").autocomplete({ source: function(req, responseFn) { addMessage("search on: '" + req.term + "'<br/>"); var matches = new Array(); var needle = req.term.toLowerCase(); var len = wordlist.length; for(i = 0; i < len; ++i) { var haystack = wordlist[i].toLowerCase(); if(haystack.indexOf(needle) == 0 || haystack.indexOf(" " + needle) != -1) { matches.push(wordlist[i]); } } addMessage("Result: " + matches.length + " items<br/>"); responseFn( matches ); } }); 

डेमो: http://jsbin.com/ufimu3/

प्रकार 'एक' या 'पुनः'

यदि आप स्ट्रिंग में प्रत्येक शब्द की शुरुआत खोजना चाहते हैं, तो हेंमैन के लिए एक और अधिक शानदार समाधान है चीओ लेना, लेकिन केवल regexp शब्द सीमा विशेष वर्ण का उपयोग करें:

 var matcher = new RegExp( "\\b" + re, "i" ); 

उदाहरण: http://jsbin.com/utojoh/2 ('bl' के लिए खोज करने की कोशिश करें)

एक और jQuery के स्वत: पूर्ण प्लग-इन है, जो वैकल्पिक रूप से प्रत्येक आइटम की शुरुआत में खोज करता है (विकल्प matchContains=false , मुझे लगता है कि यह भी डिफ़ॉल्ट है)।

JQuery UI प्लगइन में इस तरह के एक विकल्प की अनुपस्थिति को देखते हुए, मैं अनुमान लगाता हूं कि आपको एक अलग प्लगिन का उपयोग करना होगा, या जिस का उपयोग आप अभी कर रहे हैं उसे फिर से लिखना होगा।

आप को आटोक्लेप्लेट को भरने के लिए डेटा कहां मिल रहा है? क्या यह एक डेटाबेस से है? यदि हां, तो आप अपनी क्वेरी में जो चाहते हैं वह कर सकते हैं और केवल परिणाम प्राप्त कर सकते हैं जो प्रत्येक शब्द (प्रथम / अंतिम नाम) की शुरुआत से मेल खाते हैं