它应该工作......但试试这个:
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);
两次检查控制台,看看你的网址是否是你想要的。
[编辑:我错误地拒绝了编辑,对此感到抱歉]
编辑2
来自 skpaul 的评论:
GetAreaTags() 应该在我每次输入该文本框时执行。但是,控制台说- 1. /Admin/Search/GetTerritorySuggestions?area= 2. localhost:12788/Admin/Dashboard/...}&q= 404(未找到)
因此,您需要另一个事件处理程序来动态更改 url(必须使用另一个 url 调用插件):
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);
});
但是,这可能非常繁重......该插件希望您对自动完成资源有一个参考。如果您正在动态更改它,它可能会重置已经存在的东西。
编辑3
编辑 2:textextjs 现在根本不起作用。并且,url 函数返回整个函数文本
这意味着插件不能很好地处理在同一元素中被召回两次或更多次。我看到的唯一可能的解决方案是更改插件的代码,以便根据您的功能动态更改资源......
这让我想知道,如果您在输入时允许用户拥有更广泛的数据资源(包括所有区域)更容易,这样就只有一个 URL,插件不会有任何问题。