2011-08-17 14 views
7

उदाहरण कोड यहाँ: http://jsbin.com/etaziy (http://jqueryui.com/demos/autocomplete/ का प्रयोग करके)jQuery ui .autocomplete() फायरिंग नहीं है जब एक ही पत्र कलंक के बाद दर्ज की गई()

आप एक 'जे' आप 3 नाम पाने में लिखते हैं, तो 'जॉन' ' जैक 'और' जो '। यदि आप फिर धुंधला हो जाते हैं, तो मैं इनपुट वैल ('') बनाकर इनपुट को साफ़ करता हूं। फिर यदि आप इनपुट पर वापस जाते हैं, और फिर 'j' टाइप करते हैं, तो कुछ भी नहीं होता है? यह तब तक नहीं है जब तक कि आप एक दूसरा मिलान पत्र टाइप न करें जिसे आप पॉपअप दिखाते हैं।

मेरा उदाहरण थोड़ा अजीब लग सकता है, लेकिन अनिवार्य रूप से यह वास्तव में एक कट ऑफ संस्करण है जिसे मैं काम कर रहा हूं। मुझे धुंध() के बाद इनपुट को साफ़ करने की आवश्यकता है, और चयन के बाद इसे साफ़ करें। ऐसा करने से बाद के चयन बग्गी दिख रहे हैं।

मैं आंशिक रूप से सोच रहा हूं कि यह उद्देश्य की कार्यक्षमता है, लेकिन मेरे उद्देश्य के लिए, यह वही नहीं है जो मैं चाहता हूं। जैसे ही कोई पत्र टाइप किया गया है, मुझे वास्तव में दिखाने के लिए सूची के साथ पॉपअप की आवश्यकता है।

चीयर्स।

उत्तर

10

समस्या यह है कि स्वत: पूर्णता आंतरिक रूप से मेल खाने वाले मान का ट्रैक रखती है, इसलिए जब आप पहली बार j टाइप करते हैं तो यह आंतरिक मान 'j' पर सेट करता है और फिर इसे खाली स्ट्रिंग पर रीसेट नहीं किया जा रहा था इनपुट को खाली होने के लिए बदल दिया।

स्वत: पूर्ण स्रोत को देखने के बाद मैं आंतरिक चर को सीधे कैसे पहुंचा सकता हूं, यह पता लगाने में सक्षम नहीं था, लेकिन इनपुट को बदलने के बाद आप एक और खोज चलाकर स्वत: पूर्ण करने के लिए स्वत: पूर्ण कर सकते हैं खाली (और शून्य की लंबाई के साथ यह वास्तव में खोज नहीं करेगा)।

$(function() { 
    $("#search").autocomplete({ 
       source: data, 
       change: function() { // Triggered when the field is blurred, if the value has changed; ui.item refers to the selected item. 
         $("#search").val(""); 
         $("#search").autocomplete("search", ""); //THIS IS THE NEW LINE THAT MAKES IT HAPPY 
       } 
     }); 
}); 
4

बस if(true){

साथ jquery.ui.autocomplete.js

if (self.term != self.element.val()) { // only search if the value has changed 

में लाइन 98 की जगह

संबंधित मुद्दे