2012-03-12 20 views
6

मैं इस के साथ फंस गया हूं, मैं इस समय पर रहा हूं, साइट पर किसी अन्य पृष्ठ पर क्लिक होने पर jQuery पर स्वतः पूर्ण होने के लिए jQuery स्वत: पूर्ण करने की कोशिश कर रहा है सुझाव सूची।jQuery स्वत: पूर्ण आइटम के साथ किसी अन्य पृष्ठ पर रीडायरेक्ट करने के लिए कैसे करें

कोई भी यह कैसे जानता है? यहाँ मेरी कोड है:

$(':input[data-autocomplete]').autocomplete({ 
    source: $(':input[data-autocomplete]').attr("data-autocomplete"), 
    delay: 0, 
    select: function (event, item) { 
     //window.location.replace("http://www.example.com/Profile/Details/1");// Works but totally unacceptable, browser history lost etc.. 
     //alert("Item Clicked"); //Fires Ok 
    } 
}).data("autocomplete")._renderItem = function (ul, item) { 
    var MyHtml = '<a id="ItemUrl" href="/Profile/Details/' + item.PartyId + '"' + ">" + 
        "<div class='ac' >" + 
        "<div class='ac_img_wrap' >" + 
        '<img src="../../uploads/' + item.imageUrl + '.jpg"' + 'width="40" height="40" />' + 
        "</div>" + 
        "<div class='ac_mid' >" + 
        "<div class='ac_name' >" + item.value + "</div>" + 
        "<div class='ac_info' >" + item.info + " PartyId :" + item.PartyId + "</div>" + 
        "</div>" + 
        "</div>" + 
        "</a>"; 
    return $("<li></li>").data("item.autocomplete", item).append(MyHtml).appendTo(ul); 
}; 

आप देख सकते हैं मैं _renderItem घटना में कस्टम HTML का इस्तेमाल किया है, मेरे कस्टम HTML आईडी स्रोत से में पारित के साथ एक लंगर टैग बनाता है, यह ठीक लग रहा है, लिंक का निर्माण होता है सही ढंग से ब्राउज़र निचले बाएं कोने में

<a href='/Profile/Details/id' >some other divs & stuff</a> 

समस्या है कि जब मैं लिंक कुछ नहीं होता क्लिक करें, मैं घटना का चयन उपयोग करने की कोशिश की है, लेकिन आइटम रिक्त है (मैं क्रोम का उपयोग कर रहा) तो item.PartyId नहीं मिल सकता है एक मैनुअल कूद को मजबूर करने के लिए।

मैं क्लिक ईवेंट कैसे काम कर सकता हूं?

+4

आप 'location.href' – Rafay

+0

का उपयोग क्यों नहीं करते हैं तो window.location.replace के बजाय window.location.href का उपयोग करें। – j08691

+0

ठीक है बस कोशिश की, location.href काम नहीं करता है, इसकी लगभग स्वत: पूर्णता इसे रोक रही है क्योंकि चेतावनी संदेश भी आग नहीं लगाता है। – LenPopLilly

उत्तर

4

यह देर से यह जवाब देने के लिए हो सकता है, लेकिन मैं निम्नलिखित कोड के साथ यह किया है:

$(document).ready(function() { 
    $('#txtSearch').autocomplete({ 
     minLength: 3, 
     source: "handlers/SearchAutoComplete.ashx?loc=" + $('#hfLocation').val(), 
     select: function(event, ui) { 
      doSearch(ui.item.label, ui.item.city); 
     } 
    }); 
}); 

function doSearch(term, location) { 
    window.location.href = 'Search.aspx?q=' + term + '&loc=' + location; 
} 
0

सिर की पिटाई (moshing नहीं तरह) के कुछ ही दिनों मैं निम्नलिखित के साथ आने के बाद:

$(':input[data-autocomplete]').autocomplete({ 
    source: $(':input[data-autocomplete]').attr("data-autocomplete"), 
    delay: 0, 
    select: function (event, ui) { 
     var q = ui.item.PartyId; 
     if (q != "") { 
      $('#hidPID').val(q); 
      $('#ac_submit').trigger('click'); 
     } 
    }).data("autocomplete")._renderItem // -->>> the rest of the code same as above 

मुद्दा था (घटना, आइटम) किया गया (घटना, यूआई) है और आप ui.item.PartyId का उपयोग आइटम के मूल्य प्राप्त करने के लिए (मेरे मामले में PartyId स्रोत में घोषित किया जाता है: ऊपर) चाहिए

तो मेरे मूल रूप में मेरे पास दो एचटीएमएल इनपुट 1-छिपी हुई आईडी थी, 2-सबमिट & जैसा कि आप चयन में देख सकते हैं: ऊपर दिए गए कार्य आईडी को सेट करें & सबमिट को ट्रिगर करें (इसलिए अब उपयोगकर्ता केवल एक आइटम चुनता है और बंद नियंत्रक पर जाता है जो RedirectToView & इस कोड में नहीं है क्योंकि यह इस उदाहरण में स्थान का उपयोग करने के लिए सही प्रतीत नहीं होता है)

मुझे आशा है कि यह किसी को कुछ समय बचाएगा क्योंकि jQuery स्वत: पूर्ण दस्तावेज़ इसे स्पष्ट नहीं करते हैं।

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