2010-08-03 51 views
7

當從菜單中選擇一個項目時觸發; ui.item引用所選項目。 select的默認操作是將文本字段的值替換爲所選項目的值。取消此事件可防止更新該值,但不會阻止菜單關閉。如何防止自動完成中的默認選擇事件jquery

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     event.preventDefault(); 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
    } 
}); 
+0

你有沒有想辦法? – 2012-11-13 16:57:04

回答

-1

使用此參數 selectFirst:假

+0

不起作用。對不起 – Trip 2012-03-09 19:21:07

6

我知道這是一個非常古老的問題,但我只是碰到問題就來了自己。對我來說,答案是把event.preventDefault();在選擇方法是這樣的結尾:

$("#txt1").autocomplete({ 
    minLength: 1, 
    source: "abc.php", 
    select: function(event, ui) 
    { 
     //alert("Select"); 
     var label= ui.item.label; 
     var value= ui.item.value; 
     $('#txt1').val(ui.item.label); 
     event.preventDefault(); // <---- I moved! 
    } 
}); 

對於我來說,如果event.preventDefault();是在函數的開始放,然後默認事件不火,其餘的功能不會執行。如果它移動到最後,那麼它按預期工作。希望這可以幫助別人。

+0

最後一次自動完成後不適用於我。 :( – user706420 2014-02-16 23:29:13

0

所以這是一個黑客工作對我來說:在我的情況下在下拉菜單中選擇一個條目(通過鼠標點擊或使用箭頭鍵突出顯示和按ENTER),我使用value構建網址,然後將瀏覽器發送給它,但它仍然被複制到搜索框中。我嘗試過的所有答案都沒有用於防止這種情況。所以停止value顯示在搜索框中,我做了value一樣在我的JSON label,並增加了額外字段codeselect事件處理程序使用來構建我需要的網址:

$("#autocomplete").autocomplete({ 
    source: "http://www.example.com/search", 
    minlength: 2, 
    select: function(event, ui) { 
    // go to page on ENTER 
    window.location.href = "/page/" + ui.item.code; 
    } 
}); 
相關問題