我有一个简单的自动完成测试,硬codeD数据的工作。
I have a simple autocomplete test which works with hard coded data.
然而,当我添加自己的数据(包含超过1000个数据),它不工作,只显示第一个字母,所以如果我的数据是苹果
However when i add my own data (which contains over 1000 data) it doesn't work and only shows the first letter, so if my data is "Apple"
在我的B型 - 它显示了香蕉,但我不能输入BA为A消失
when i type B - it shows Banana but i cannot type "BA" as the "A" disappears.
我期待我能写全字,而不是第一个字母。
I was expecting that i can write the whole word rather than the first letter.
这是工作code:
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的工作,但
So these letters: Bold", "Normal", "Default", "100", "200" work. BUT
当我改变validOptions为:
var validOptions ='@Url.Action("SerialProdNumStockSiteAutoComplete", "Ajax")?stocksitenum=LW&model=' + $("#Form_Prod_Num").val();它不工作,因为它应该。
It doesn't work as it should.
有另一种方式来做到这一点,或者你知道,我要去哪里错了。
is there another way to do this, or do you know where i'm going wrong.
这个问题是关于替代.keyup
SerialProdNumStockSiteAutoComplete code:
SerialProdNumStockSiteAutoComplete code:
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();当我复制此显示的网址:
When i copy the URL this shows:
localhost:58172/Ajax/SerialProdNumStockSiteAutoComplete?stocksitenum=LW&model=MP4000BADP&term=4&_=1433235435372
这是当我进入4并且不可能添加任何其他
This was when i entered 4 and couldnt add anything else
推荐答案右键我已经找到答案
简单的东西:
var source = validOptions; var found = $('.ui-autocomplete li').text().search(source); console.debug('found:' + found); if (found < 0) { $(this).val(''); alert("please select from auto complete"); }更多推荐
.keyup事件替代
发布评论