Javascript 使用一个外部自动完成插件(jQuery),我试图将自己的值放入json中,但它不起作用
这是我上一个问题的延续,我是JSON和ajax新手,我试图根据我的要求在数据中加入我自己的价值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
$("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){