jQuery自动完成以获取未使用的值

时间:2009-09-16 01:55:49

标签: javascript jquery

在我的ASP.Net MVC应用程序中,我在文本框上有一个jQuery自动完成功能。我有一切工作来显示当前使用的项目名称,我想要做的是强制用户输入一个完全新的项目名称。即自动完成功能可作为存在内容的指南,但用户必须最终输入完全使用的字符串值。

我希望UI指示当前使用的项目是否被选中(当发布提交时将在服务器端进行另一次检查)所以目前只有一个简单的警报()。

我的脚本如下:

    $(document).ready(function() {
        $('#combobox').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>', {
    delay:10,
    minChars:1,
    matchCase: 0,
    matchSubset: 1,
    autoFill: true,
    maxItemsToShow:10,
    cacheLength: 10,
    onItemSelect:selectItem,
    onFindValue:selectItem    
    });

});

请注意加价: onItemSelect:selectItem,onFindValue:selectItem

我还有以下脚本:

    function findValue(li) {
        if (li != null) return alert("This Project Id cannot be used");


    }
    function selectItem(li) {
        findValue(li);

    }

但是, 我无法触发这些事件 。我错过了什么?

或者,有更好的方法吗?

2 个答案:

答案 0 :(得分:1)

我用过

$("combobox").result(function(item){
  if(!item)
  {
    //no match
   }
});

官方插件取得了一些成功。

答案 1 :(得分:0)

完整的最终代码可以帮助任何需要它的人:

    $(document).ready(function() {
        $('#combobox').autocomplete('<%= Url.Action("ProjectIdList", "LookUp") %>',
{
    delay: 10,
    minChars: 1,
    matchCase: 0,
    matchSubset: 1,
    autoFill: true,
    maxItemsToShow: 10,
    cacheLength: 10

}
);

        $('#combobox').result(function(item) {
            if (item) {
                //no match
                alert("Not this one!");
            }
        });
    });