簡體   English   中英

Jquery自動完成,如何搜索單詞而不是字符串

[英]Jquery autocomplete, how to search on words instead of string

我有一個文本框,我希望有一個自動完成功能,讓用戶搜索地址。 用戶必須能夠鍵入不同的單詞,並且自動完成必須搜索它們以縮小其列表。

我一直在嘗試閱讀文檔,但似乎沒有什么可以做的,因為它總是搜索整個字符串而不是單詞。 我錯過了什么嗎?

例:

當用戶輸入“Mathias Antwerp”時,他必須看到包含這些詞的所有地址。 在示例中,它必須顯示1行,這是第二行。

<script>
var addresses = [
    { name: "Frederick Dereave Gentstreet 4 Gent" },
    { name: "Mathias Derian Meilaan 9 Antwerp" },
    { name: "Mathias Hors frelaan 5 Kortrijk" }
];    

$(document).ready(SetAutoComplete);

function SetAutoComplete() {

    $("#testveld").autocomplete(emails,
        {
            matchContains: "word"
        }
    );
}
</script>
<input type="text" id="testveld" style='width:300px'/>

我在jquery.autocomplete.js中更改了matchSubset的代碼,這啟用了我正在尋找的行為。

function matchSubset(s, sub) {

    var arraySub=sub.split(" ");

    if (!options.matchCase) 
        s = s.toLowerCase();
    var i = s.indexOf(sub);
    if (options.matchContains == "word"){
        i = s.toLowerCase().search("\\b" + sub.toLowerCase());
    }

    //addition for split words
    if (options.matchContains == "splittedword"){
        for(itemindex=0;itemindex<arraySub.length;itemindex++){

            i = s.toLowerCase().search(arraySub[itemindex].toLowerCase());
            if(i==-1){
                break;
            }
        }
    }

    if (i == -1) return false;
    return i == 0 || options.matchContains;
};

AFAIK,你必須自己做一些處理,把字符串解析成單詞。 您可以使用jquery執行此操作,或者如果您計划從服務器端獲取地址,則使用某種服務器端語言。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM