2008-11-30 23 views

回答

3

我這樣做的自動完成功能:

change: function(event, ui){ 
    $(this).next("input[id^=person_id]").val(''); 
    return false; 

之後,用戶選擇的選項,它彈出用項目ID指定隱藏的輸入,如果可見輸入發生任何變化,隱藏的輸入值將被清除。奇蹟般有效!

0

根據評論主題here它似乎不可能。我想我只是檢查輸入的值對數據庫,如果它不存在,創建一個新的。

1

我堅持着同樣的問題...看起來像有沒有當值不匹配上升事件......然而,似乎有些解決方法已發現...

由Xavier從this thread:

selected: function() { 
    if(listItems.filter(」.」 + CLASSES.ACTIVE)[0]){ 
    return data && data[ listItems.filter("." + CLASSES.ACTIVE)[0].index ]; 
    } else { 
    if (options.notFound){ 
     options.notFound(); 
    } 
    } 
} 

這不是我認爲的最佳解決方案的答覆...任何其他的想法? 是啊,我也沒解決我怎樣才能使用這一特定解決方案的任何:(

1

哦,我想我找到了一招如何超越所有這些事件...... 簡單地說,這種添加到extraParams沿着withi othor PARAMS發送到自動完成

extraParams: { 
    x: function(){ $("#targetField").val(''); } 
} 

這一個簡單的清空場發送請求,如果沒有結果發現或沒有被選中,並進入一些新的自定義值,它只是仍然爲空...

-1
$("#txtSearchProvider").autocomplete("../WebServices/PageMethods/AutoComplete.aspx", 
       { 
        minChars: 3, 
        formatItem: function(data, i, n, value) { 
         return value.split("-z-")[0]; 
        }, 
        formatResult: function(data, value) 
        { 
         return value.split("-z-")[0]; 
        } 
       } 
      ); 
      $("#txtSearchProvider").result(function(event, data, formatted) { 
       $("#txtSearchProviderHidden").val(data[0].split("-z-")[1]); 
      }); 

響應從:../WebServices/PageMethods/AutoComplete.aspx

數據1,一個公司-Z-29310 數據2,阿爾馬桑&巴巴拉,LLP-Z-35745 多斯桑托斯桑托斯-Z -36327 Calzano &薩爾扎諾-Z-39295

2

您還可以在自動完成功能中使用「搜索」選項。

search: function(event, ui){ 
    $(this).next("input[id^=person_id]").val(''); 
} 

似乎工作。它會在延遲和最小長度後觸發,但如果將其設置爲minlength = 0,則會很好地清除。