我有一個簡單的自動完成測試,可以與硬編碼數據一起使用。.keyup事件替代
然而,當我加入我自己的數據(包含超過1000個數據),它不工作,只顯示第一個字母,所以如果我的數據是「蘋果」
當我是B型 - 它顯示了香蕉但是當「A」消失時,我不能輸入「BA」。
我期待着我能寫出整個單詞而不是第一個字母。
這是工作代碼:
var validOptions = ["Bold", "Normal", "Default", "100", "200"]
previousValue = "";
$('#ac').autocomplete({
autoFocus: true,
source: validOptions
})
.keyup(function() {
var isValid = false;
for (i in validOptions) {
if (validOptions[i].toLowerCase().match(this.value.toLowerCase())) {
isValid = true;
}
}
if (!isValid) {
this.value = previousValue
} else {
previousValue = this.value;
}
});
所以這些信件:大膽」, 「普通」, 「默認」, 「100」, 「200」 的工作,但
儘快。我改變validOptions到:
var validOptions ='@Url.Action("SerialProdNumStockSiteAutoComplete", "Ajax")?stocksitenum=LW&model=' + $("#Form_Prod_Num").val();
它並不如它應該工作
是否有另一種方式來做到這一點,或者你知道我要去哪裏錯了。
這個問題是關於替代.keyup
SerialProdNumStockSiteAutoComplete代碼:
public JsonResult SerialProdNumStockSiteAutoComplete(string term,string stocksitenum,string model)
{
return Json(AutoComplete.DeviceFromStockSite(term, stocksitenum, model), JsonRequestBehavior.AllowGet);
}
現貨設備:
public static List<string> DeviceFromStockSite(string term, string stocksitenum, string model)
{
//devices will always come from serialised stock
var qryStock =
SC42Ctx.SPNlocs
.Where(x => x.Nloc_Site_Num.StartsWith(stocksitenum)
&& x.Nloc_Part_Num == model
&& x.Nloc_Ord_Num == null)
.Select(
s =>
new TicketSerialNumber
{
SerialNumber = s.Nloc_ID_Num,
Source = stocksitenum,
Call = s.Nloc_Ord_Num.ToString()
})
.ToList();
當我複製網址這表明:
這是當我進入4並且不可能添加任何其他
可能重複(http://stackoverflow.com/questions/30571248/using -keyup功能對過濾器自動完成) –
作爲您的重複,http://stackoverflow.com/questions/30571248/using-keyup-function-to-filter-auto-complete,該作品的版本一個數組,不是一個字符串的版本。 –
其不一樣的,我如果theres另一種選擇爲.keyup,其他問題我沒有答案,詢問,所以我要提出新問題,以改變一切,而不是告訴我,我的錯誤,你可以請嘗試給一個解決方案 –