2012-03-12 27 views
6

Tıkladığımdan, saatlerce çalıştım, bir öğeye tıklandığında jQuery otomatik tamamlamasının sitede başka bir sayfaya gitmesini sağlamaya çalışıyorum. öneri listesi.jQuery Otomatik Tamamlama öğesi ile başka bir sayfaya nasıl yönlendirilirsiniz?

Bunu nasıl yapacağını bilen var mı? İşte benim kod: Ben _renderItem olay özel HTML kullandık Gördüğünüz gibi

$(':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); 
}; 

, benim özel HTML kaynağından geçirilen kimliğe sahip bir çapa etiketi oluşturur, bu bağlantı oluşturulur, Tamam görünüyor doğru tarayıcı sol alt köşede öylesine item.PartyId alamayan

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

Ben hiçbir şey olmuyor bağlantıyı tıkladığında sorun, ben select olayı kullanarak denedi olduğunu ancak madde boş olmadığı (I Chrome kullanıyorum) manuel bir atlamayı zorlamak için.

Tıklama olayını nasıl çalışırım?

+4

neden 'location.href' kullanmıyorsunuz – Rafay

+0

window.location.replace yerine window.location.href dosyasını kullanın. – j08691

+0

Tamam, bunu denedim, location.href çalışmıyor, neredeyse otomatik tamamlama, uyarı mesajı da patlamıyor gibi duruyor. – LenPopLilly

cevap

4

Geç cevap vermek olabilir ama ben aşağıdaki kodla yapmış: Aşağıdaki ile geldim kafasına vurarak (moshing türden değil) bir kaç gün sonra

$(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

:

$(':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 

sorun (olay, öğe) olmuştur (olay, ui) varsa ve ui.item.PartyId kullanmak öğenin değerini almak için (benim durumumda PartyId kaynağında bildirildi: yukarıdaki) olmalıdır edildi

Yani benim Orijinal form 1-gizli ID, 2-Submit & iki html girdisi vardı, select: fonksiyonunu görebildiğim gibi yukarıdaki & tanıtımı tetikle (şimdi kullanıcı sadece bir öğe seçer ve denetleyiciye giderler) Hangi RedirectToView & gerçekleştirir Bu konumdaki konumu doğru görünmüyor gibi bu kod NOT)

Ben jQuery otomatik tamamlama docs çok açık yapmak gibi bir kez bu kaydeder umarım.

İlgili konular