.keyup事件替代 [英] .keyup event alternative

查看:154
本文介绍了.keyup事件替代的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个简单的自动完成测试,硬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

当我改变v​​alidOptions为:

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆