我试图在textextjs方法中调用一个函数 -
//my function
function GetAreaTags() {
return "some text";
}
//textext initializtion
$('#territory').textext({
plugins: 'tags prompt focus autocomplete ajax',
ajax: {
url: '/Admin/Search/GetTerritorySuggestions?area=' + GetAreaTags(),
dataType: 'json',
cacheResults: false
}
});
但是没有调用 GetAreaTags()。我该如何实现呢?
答案 0 :(得分:1)
它应该有用......但试试这个:
function GetAreaTags() {
return "some text";
};
var yourObj= {
plugins: 'tags prompt focus autocomplete ajax',
ajax : {
url: '/Admin/Search/GetTerritorySuggestions?area=' + GetAreaTags(),
dataType: 'json',
cacheResults: false
}
};
$('#territory').textext(yourObj);
console.log(yourObj.ajax.url);
如果不能解决问题,请尝试:
function GetAreaTags() {
return "some text";
};
var yourObj= {
plugins: 'tags prompt focus autocomplete ajax',
ajax : {
url: function() {return '/Admin/Search/GetTerritorySuggestions?area=' + GetAreaTags()},
dataType: 'json',
cacheResults: false
}
};
$('#territory').textext(yourObj);
console.log(yourObj.ajax.url);
检查控制台两次,看看你的网址是否符合你的要求。
[编辑:我错误地拒绝了编辑,抱歉]
来自s.k.paul的评论:
GetAreaTags()应该在每次输入该文本框时执行。 但是,控制台说 - 1. / Admin / Search / GetTerritorySuggestions?area = 2. localhost:12788 / Admin / Dashboard / ...}& q = 404(Not Found)
因此,您需要另一个事件处理程序来动态更改网址(必须使用其他网址调用该插件):
function GetAreaTags() {
return "some text";
};
$("#territory").keyup(function() {
var yourObj= {
plugins: 'tags prompt focus autocomplete ajax',
ajax : {
url: function() {return '/Admin/Search/GetTerritorySuggestions?area=' + GetAreaTags()},
dataType: 'json',
cacheResults: false
}
};
$('#territory').textext(yourObj);
console.log(yourObj.ajax.url);
});
但是,这可能非常繁重...该插件希望您为自动完成资源提供单一参考。如果您正在动态更改它,它可能会重置已有的内容。
编辑2:textextjs现在根本不起作用。并且,url函数返回 整个功能文本
这意味着插件无法在同一元素中处理两次或更多次。我看到的唯一可能的解决方案是更改插件的代码,以便根据您的功能动态更改资源...
这让我想知道,如果您在键入时允许用户拥有更广泛的数据资源(包括所有区域)更容易,这样只会有一个URL并且插件不会有任何问题