jQuery UI自动完成将术语划分为单独的字符,而不是单词

时间:2011-02-13 21:50:47

标签: jquery jquery-ui autocomplete jquery-autocomplete jquery-ui-autocomplete

我正在编写一个ASP.NET MVC网站,我正在尝试使用jQuery UI自动完成功能实现自动完成功能

以下是我的网页设置方式:

我有一个标识为TagInput的文本框。接下来,我有以下内联Javascript代码:

$().ready(function () {
            bindAutoTagComplete('#TagInput');
        });

除了在该页面上引用jQuery和jQuery UI库之外,我还引用了这个外部Javascript代码:

function bindAutoTagComplete(item, otherRootDomain)
{
var url = (otherRootDomain || "") + "/tags/ajaxList";
        function split( val ) {
            return val.split(' ');
        }
        function extractLast( term ) {
            return split( term ).pop();
        }

        $(item).autocomplete({
            source: function( request, response ) {
                $.getJSON(url, {
                    term: extractLast( request.term )
                }, response );
            },
            search: function() {
                // custom minLength
                var term = extractLast( this.value );
                if ( term.length < 2 ) {
                    return false;
                }
            },
            focus: function() {
                // prevent value inserted on focus
                return false;
            },
            select: function( event, ui ) {
                var terms = split( this.value );
                // remove the current input
                terms.pop();
                // add the selected item
                terms.push( ui.item.value );
                // add placeholder to get the comma-and-space at the end
                terms.push( "" );
                this.value = terms.join( " " );
                return false;
            }
        });
    }

一切正常,除了标签名称的AJAX结果被分成单个字符,而不是单词。例如,如果我有两个标签“foo”和“bar”返回,弹出的自动填充列表列出:

  • ˚F
  • 0
  • 0
  • B'/ LI>
  • 一个
  • - [R

而不是:

  • FOO

我调试了代码,但没有找到导致这种错误分割的原因。有什么想法吗? 提前致谢。

更新:以下是该AJAX请求中服务器当前返回的内容示例:

  

“foo bar some-other-tag”

2 个答案:

答案 0 :(得分:1)

问题很可能是split函数,它看起来像是一些自定义拆分函数。这很难说,因为这里没有相关的代码。

答案 1 :(得分:0)

感谢您的提示,伙计们!我发现了问题;事实上,有两个:

  1. 我的应用程序以格式不正确返回AJAX结果。基于jQuery UI自动完成文档,我已将其更改为正确的格式。
  2. 我的AJAX通话也将标签名称作为错误的参数发送。
  3. 现在有效!