Javascript 使用一个外部自动完成插件(jQuery),我试图将自己的值放入json中,但它不起作用

Javascript 使用一个外部自动完成插件(jQuery),我试图将自己的值放入json中,但它不起作用,javascript,jquery,html,json,jquery-autocomplete,Javascript,Jquery,Html,Json,Jquery Autocomplete,这是我上一个问题的延续,我是JSON和ajax新手,我试图根据我的要求在数据中加入我自己的价值 $("document").ready(function() { $.widget('custom.mcautocomplete', $.ui.autocomplete, { _renderMenu: function(ul, items) { var self = this, thead; if (this.options.showH

这是我上一个问题的延续,我是JSON和ajax新手,我试图根据我的要求在数据中加入我自己的价值

$("document").ready(function() {
$.widget('custom.mcautocomplete', $.ui.autocomplete, {
    _renderMenu: function(ul, items) {
        var self = this,
            thead;

        if (this.options.showHeader) {
            table = $('<div class="ui-widget-header" style="width:100%"></div>');
            $.each(this.options.columns, function(index, item) {
                table.append('<span style="padding:0 4px;float:left;width:' + item.width + ';">' + item.name + '</span>');
            });
            table.append('<div style="clear: both;"></div>');
            ul.append(table);
        }
        $.each(items, function(index, item) {
            self._renderItem(ul, item);
        });
    },
    _renderItem: function(ul, item) {
        var t = '',
            result = '';

        $.each(this.options.columns, function(index, column) {
            t += '<span style="padding:0 4px;float:left;width:' + column.width + ';">' + item[column.valueField ? column.valueField : index] + '</span>'
        });

        result = $('<li></li>').data('item.autocomplete', item).append('<a class="mcacAnchor">' + t + '<div style="clear: both;"></div></a>').appendTo(ul);
        return result;
    }
});
//from here I am customizing the code*/
  $("document").ready(function (){
   $("#scl_name").mcautocomplete({
    // These next two options are what this plugin adds to the autocomplete widget.
    showHeader: true,
       showHeader: true,
        columns: [{
            name: 'description',
            width: '150px'
        }, {
            name: 'schoolname',
            width: '120px'
        }],

    // Event handler for when a list item is selected.
    /*select: function (event, ui) {
        this.value = (ui.item ? ui.item.name : '');
        $('#school_Name').text(ui.item ? 'Selected: ' + ui.item.name +this.value);
        return false;
    },*/

    // The rest of the options are for configuring the ajax webservice call.
    minLength: 1,
    source: function (request, response) {
        $.ajax({
            url: 'dummy.json',
            dataType: 'json',
            data: {
                featureClass: 'P',
                style: 'full',
                maxRows: 12,
                name_startsWith: request.term,
                username: "demo"
            },
            // The success event handler will display "No match found" if no items are returned.
            success: function (data) {
                var result;
                if (!data || data.length === 0 || !data.schoolname || data.schoolname.length === 0) {
                    result = [{
                        label: 'No match found.'
                    }];
                } else {
                    result = data.schoolname;
                    console.log(result);
                }
                response(result);
            }
        });
    }
});
});
$(“文档”).ready(函数(){
$.widget('custom.mcautocomplete',$.ui.autocomplete{
_renderMenu:功能(ul,项目){
var self=这个,
thead;
if(this.options.showHeader){
表=$('');
$.each(this.options.columns,函数(索引,项){
表.追加(“”+item.name+“”);
});
表.附加(“”);
ul.附加(表);
}
$。每个(项目、功能(索引、项目){
自我评估(ul,项目);
});
},
_renderItem:功能(ul,项目){
变量t=“”,
结果='';
$.each(this.options.columns,函数(索引,列){
t+=''+项[column.valueField?column.valueField:索引]+''
});
结果=$('
  • ).data('item.autocomplete',item.append(''+t+'').appendTo(ul); 返回结果; } }); //从这里我定制代码*/ $(“文档”).ready(函数(){ $(“#scl_名称”).mcautocomplete({ //接下来的两个选项就是这个插件添加到autocomplete小部件中的内容。 showHeader:是的, showHeader:是的, 栏目:[{ 名称:'说明', 宽度:“150px” }, { 名称:'学校名称', 宽度:“120px” }], //选择列表项时的事件处理程序。 /*选择:功能(事件、用户界面){ this.value=(ui.item?ui.item.name:“”); $(“#学校名称”).text(ui.item?”选中:“+ui.item.Name+this.value); 返回false; },*/ //其余选项用于配置ajax Web服务调用。 最小长度:1, 来源:功能(请求、响应){ $.ajax({ url:'dummy.json', 数据类型:“json”, 数据:{ featureClass:'P', 风格:'满', 马克斯罗:12, name_startsWith:request.term, 用户名:“演示” }, //如果未返回任何项目,则成功事件处理程序将显示“未找到匹配项”。 成功:功能(数据){ var结果; 如果(!data | | data.length==0 | |!data.schoolname | | data.schoolname.length==0){ 结果=[{ 标签:“未找到匹配项。” }]; }否则{ 结果=data.schoolname; 控制台日志(结果); } 反应(结果); } }); } }); });
    对于当前的一个,我得到的输出是[object]
    现在我没有得到任何错误,但也没有得到任何值:( 这是我的html

    <input type="text" id="scl_name" class="ipt_Field"/>
    
    
    

    提前感谢

    这里的“eval()”是什么?为什么要使用它?到目前为止,我看不出这个“schoolname1”是从哪里来的。如果我错了,请纠正我。如果创建正则表达式,应该使用“new RegExp”
    var searchData=new RegExp(schoolname1.searchData(),“gi”);
    @Franco schoolname1是文本框的变量id@synthet1c这里我尝试使用if(v.description.search(newregexp(searchData))!=-1){