2011-03-20 23 views
13

मैं यह समझने की कोशिश कर रहा हूं कि जब व्यक्ति स्वत: पूर्ण विकल्पों से परिणाम का चयन करता है तो फ़ॉर्म को कैसे सबमिट किया जाए। इसे माउस क्लिक या एंटर बटन के साथ काम करने की ज़रूरत है। मैं वहां उदाहरण देखता हूं लेकिन हमेशा टुकड़ों में। कोई भी पूरा कार्य दिखाता है।jQuery UI स्वत: पूर्ण सबमिट परिणाम

मेरे पास यह कोड नीचे है लेकिन मुझे त्रुटियां मिल रही हैं कि परिणाम एक समारोह नहीं है। मुझे नहीं पता कि मैं इसे क्या करना चाहूंगा। किसी भी मदद की सराहना की है।

jQuery(document).ready(function(){ 

jQuery("#vsearch").autocomplete("ajax/search.php", 
    { 
    minLength: 2 
} 
); 
jQuery("#vsearch").result(function(event, data, formatted) { 
     jQuery('#vsearch').value(formatted); 
     jQuery('#search').submit(); 
}); 
}); 

उत्तर

31

से: http://api.jqueryui.com/autocomplete/#event-select

चयन - प्रकार: autocompleteselect

उत्प्रेरित एक आइटम मेनू से चयन किया जाता है जब; ui.item चयनित आइटम को संदर्भित करता है। का डिफ़ॉल्ट कार्य चयनित क्षेत्र मान को चयनित आइटम के मान के साथ प्रतिस्थापित करना है। इस घटना को रद्द करने से को अद्यतन होने से मूल्य रोकता है, लेकिन मेनू को बंद होने से नहीं रोकता है।

कोड उदाहरण

आपूर्ति एक कॉलबैक फ़ंक्शन एक init विकल्प के रूप में चयन घटना को संभालने के लिए। प्रकार के आधार पर चयन करने के लिए घटना

$(".selector").autocomplete({ 
    select: function(event, ui) { ... } 
}); 

बाइंड: autocompleteselect।

$(".selector").bind("autocompleteselect", function(event, ui) { 
    ... 
}); 

तो तुम का प्रयोग करेंगे:

संपादित करें: (उपयोगकर्ता मामले में संशोधित कुछ भी चयन नहीं करता है)

$("#vsearch").autocomplete({ 
    source: "ajax/search.php", 
    minLength: 2, 
    select: function(event, ui) { 
     if(ui.item){ 
      $('#vsearch').val(ui.item.value); 
     } 
     $('#search').submit(); 
    } 
}); 

अगर मैं तुम्हें करना चाहते रहे हैं की यकीन ।

+0

हाँ, अच्छा काम करता है। बहुत आसन। :) –

+0

इसे सुनकर खुशी हुई; डी – mattsven

+0

बीटीडब्लू, यह आप एक विकल्प नहीं बनाते हैं, आप इनपुट में क्या भी सबमिट नहीं कर सकते हैं? –

27

दरअसल, आपको आईडी के लिए तत्व और फॉर्म के लिए लक्षित करने की आवश्यकता नहीं है ... क्योंकि वह जानकारी ईवेंट ऑब्जेक्ट के माध्यम से पहले से ही चयनित फ़ंक्शन पर पास हो चुकी है। फ़ॉर्म को इस तरह से प्राप्त करना बेहतर है क्योंकि आपके पास उस पृष्ठ पर कई रूप हो सकते हैं जिन्हें आप स्वतः पूर्ण करना चाहते हैं। या आप कई तत्वों पर स्वतः पूर्ण हो सकते हैं।

इसके अलावा, दूसरे उत्तर में वाक्यविन्यास गलत है। JQuery इनपुट का मान सेट करने के लिए .val() नहीं .value() का उपयोग करता है।

यहाँ एक को सही उदाहरण है:

$("#vsearch").autocomplete({ 
    source: "ajax/search.php", 
    minLength: 2, 
    select: function(event, ui) { 
     //assign value back to the form element 
     if(ui.item){ 
      $(event.target).val(ui.item.value); 
     } 
     //submit the form 
     $(event.target.form).submit(); 
    } 
}); 
+3

+1 किसी विशिष्ट चयनकर्ता (उदाहरण के लिए "#vsearch") के बजाय ऑब्जेक्ट के संदर्भ का उपयोग करने के लिए। –

+0

बिल्कुल सही जवाब! – fjckls

+0

निश्चित रूप से, इसे जाने का तरीका। –

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