5

पर क्लिक करता है तो मेनू खुलता है मैं इस JQuery autocomplete widget का उपयोग कर रहा हूं।JQuery UI स्वत: पूर्ण - जब उपयोगकर्ता टेक्स्ट बॉक्स

जब उपयोगकर्ता टेक्स्ट बॉक्स में क्लिक करता है तो मैं इसे मेनू को स्वचालित रूप से कैसे खोल सकता हूं? मैं चाहता हूं कि उपयोगकर्ता सभी विकल्पों को देखना चाहें।

उत्तर

21

आप शून्य करने के लिए विजेट पर minLength विकल्प मैन्युअल search घटना ट्रिगर और निर्धारित करने की आवश्यकता:

$("input").autocomplete({ 
    minLength: 0, 
    /* other options */ 
}).on("focus", function() { 
    $(this).autocomplete("search", ""); 
}); 

कार्य उदाहरण:http://jsfiddle.net/9JmVu/

+1

मैं इस संस्करण हम फिर भी प्रयोग कर रहे हैं में काम करने के साथ "पर" की जगह, नहीं मिल सका:, .focus (function() {$ (this) .autocomplete ("खोज" "")}); बहुत अच्छा काम किया। –

+0

आप jQuery के पहले संस्करण का उपयोग कर रहे हैं। –

+0

क्या यह 'खोज' ईवेंट को कॉल किए बिना संभव है? –

1

मुझे लगता है मैं यह वास्तव में मिला है। यदि आप minLength को 0 पर सेट करते हैं, और उसके बाद "" खोज को ट्रिगर करते हैं, तो यह मेनू खोलता है।

 $(inputSelector).autocomplete(
       { 
        source: this.validConstructCodes, 
        minLength: 0, 
        autoFocus: true, 
        autoSelect: true 
       }); 
     $(inputSelector).focus(function(event) { 
     $(this).autocomplete("search" , ""); 
     }); 
1

जैसा कि एंड्रयू से समझाया गया है, आपको ईवेंट को ट्रिगर करने की आवश्यकता है।

लेकिन एक बार जब आप AJAX अनुरोध से परिणाम प्राप्त कर लेते हैं, तो सर्वर को फिर से पूछने के बजाय परिणाम फिर से दिखाना बेहतर होता है। न्यूनतम लम्बाई मान स्वतंत्र है, सर्वर अनुरोधों पर अनुशंसित 2 हो सकता है।

$("input").autocomplete({ 
    minLength: 2, 
    /* your options */ 
}).on("focus", function() { 
    /* the element with the search results */ 
    var uid = $("#ui-id-"+$(this).autocomplete("instance").uuid); 

    if(uid.html().length == 0) { 
     /* same as $(this).autocomplete("search", this.value); */ 
     $(this).keydown(); 
    } 
    else { 
     uid.show(); 
    } 
}); 
संबंधित मुद्दे