2010-02-04 21 views
27

पारंपरिक HTML फ़ॉर्म पर JQuery Autocomplete का उपयोग करना।JQuery स्वत: पूर्ण: चयन पर फ़ॉर्म जमा करें?

चयन करते समय फॉर्म (पुराने तरीके से) सबमिट करने का प्रयास कर रहा है।

लेकिन इनपुट बॉक्स बाहर भरा हो जाता है और उसके बाद मैं प्रेस "वापसी" एक 2 बार कर सकते हैं या सबमिट बटन पर क्लिक करने के लिए की है।

मैंने कुछ SO उदाहरणों की कोशिश की है, लेकिन मैं उन्हें काम पर नहीं ला सका।

चयन करते समय आप फ़ॉर्म को स्वचालित रूप से सबमिट कैसे करते हैं?

+0

: एक callbackfunction को परिभाषित करने और जावास्क्रिप्ट के साथ callbackfunction में फ़ॉर्म सबमिट करें। वास्तव में कोड में यह कैसे करें पता नहीं है। – Natrium

उत्तर

42

अद्यतन: मैं अंत में यह एक पता लगा, कोड के नीचे चाल करना चाहिए। किसी कारण से change कॉलबैक काम नहीं कर रहा था, लेकिन close & select कॉलबैक करते हैं। select का उपयोग करना बेहतर है, क्योंकि close भी कॉल किया जाएगा यदि फ़ील्ड फोकस खो देता है।

$(function() { 
    $("#searchField").autocomplete({ 
     source: "values.json", 
     select: function(event, ui) { 
      $("#searchForm").submit(); } 
    }); 
}); 

कोई अन्य अपडेट: ठीक है, वहाँ भी select कॉलबैक, जो कि डिफ़ॉल्ट रूप से (ऊपर कोड में) है अगर आपको स्वत: पूर्ण कुंजीपटल के साथ ड्रॉप डाउन पार के साथ एक समस्या है, और प्रवेश के साथ चयन कुंजी, फ़ॉर्म जमा होने से पहले इनपुट बदल दिया जाता है। हालांकि, यदि आप इसे माउस के साथ चुनते हैं, तो फॉर्म इनपुट बदलने से ठीक पहले सबमिट किया जाता है, इसलिए सबमिट किया गया मान केवल उपयोगकर्ता द्वारा टाइप किया गया है (वह स्वत: पूर्ण ड्रॉपडाउन से नहीं चुना गया है)। woraround काम करने के लिए लगता है कि यह है:

$("#searchField").autocomplete({ 
    source: "values.json", 
    minLength: 2, 
    select: function(event, ui) { 
     $("#searchField").val(ui.item.label); 
     $("#searchForm").submit(); } 
}); 
+0

जब मेरा पूरा पूरा हो रहा है तो मेरा विपरीत प्रभाव पड़ रहा है लेकिन मैं नहीं चाहता कि यह कोई सलाह है? – Robert

6
$("#searchField").result(function(event, data, formatted) { 
    $(this).closest("form").submit(); 
}); 

searchField पहले से ही चयनित क्षेत्र के साथ से भर जाता है यह इस समारोह में फिर से ऐसा करने की कोई जरूरत नहीं।

आधिकारिक प्रलेखन: http://docs.jquery.com/Plugins/Autocomplete/result#handler

5

मैं @handsofaten द्वारा जवाब पर टिप्पणी नहीं कर सकता इसलिए मैं यहाँ अपने जवाब देने के लिए जोड़ देगा। यह अधिक भावना मूल्य बजाय कुछ मामलों में के रूप में लेबल, मेरे मामले का उपयोग करने के कर सकते हैं, लेबल नहीं है उपयोगकर्ता के साथ डेटाबेस खोज करना चाहते हैं क्या।

$("#searchField").autocomplete({ 
source: "values.json", 
minLength: 2, 
select: function(event, ui) { 
    $("#searchField").val(ui.item.value); 
    $("#searchForm").submit(); } 
}); 
-4
select: function(event, ui) { 

      if(ui.item){ 

      $(event.target).val(ui.item.value); 

    } 

      $(event.target.form).submit(); 

        }); 
+4

अपने उत्तर के लिए एक स्पष्टीकरण प्रदान करने पर विचार करें – arghtype

0

आप प्रस्तुत अपने इस क्षेत्र में सबमिट बटन कॉलिंग आईडी, भले ही कोड भी अन्य पेज में है द्वारा चयनित दायर किया।

document.getElementById('submit').click(); 
संक्षेप में
संबंधित मुद्दे