.keyup事件替代 [英] .keyup event alternative
问题描述
我有一个简单的自动完成测试,硬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:
<一个href=\"http://localhost:58172/Ajax/SerialProdNumStockSiteAutoComplete?stocksitenum=LW&model=MP4000BADP&term=4&_=1433235435372\" rel=\"nofollow\">http://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事件替代的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!