我有一个简单的自动完成测试,可以与硬编码数据一起使用。.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,其他问题我没有答案,询问,所以我要提出新问题,以改变一切,而不是告诉我,我的错误,你可以请尝试给一个解决方案 –