我在一个旧的(非常大的)jQuery Auto-Complete
项目中使用了Tag-It,jQuery Ajax
和asp.net web-forms
。
一切都很完美,但在达到目标之前还需要做一件事。一旦从自动完成下拉列表中选择了一个标记(单词或单词),我想显示一个自动完成列表,其中包含下一个标记(再次是单词或单词)的建议。 (手动输入百分号会给我我想要的行为,但我的用户不会对该解决方案感到满意。)
我一直在搜索没有成功,到目前为止我的所有尝试都失败了。
我在下面提供了使用的代码。我尝试在afterTagAdded方法中添加许多不同的东西。目前的尝试在“Object expected”
jquery-ui 1.11.4.
例外
如果有人能指出我正确的方向,我们感激不尽。 我不是javascript和jQuery的专家。
$(document).ready(function () {
var currentlyValidTags = [];
$(".TagItInput").tagit({
autocomplete: {
source: function (request, response) {
$.ajax({
type: "POST",
url: "AutoCAdvTest3.aspx/GetTexts",
data: JSON.stringify({ text: request.term, tags: $(".TagItInput").tagit("assignedTags") }),
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (msg) {
currentlyValidTags = msg.d;
response(msg.d);
}
});
},
minLength: 0
},
beforeTagAdded: function (event, ui) {
// Only allow tags from the completion list
if ($.inArray(ui.tagLabel, currentlyValidTags) == -1) {
return false;
}
},
afterTagAdded: function (event, ui) {
// without this line I get an error saying that AutoComplete is not initialized
$(".TagItInput").autocomplete();
// but.... Search method fails anyway
$(".TagItInput").autocomplete("search", "%");
},
});
$(".ui-autocomplete-input").focus();
});
答案 0 :(得分:0)
我设法找到了一个解决方案,但不确定这是否是正确的方法,并且谢天谢地对此提出任何意见。
手动按键盘上的空格键将搜索标签并下拉完成列表。
在Tag-It
afterTagAdded
事件中,我正在使用jQuery
将空格键击键事件发送到Tag-It
创建的输入字段。似乎可以做到这一点,至少对于IE和Chrome的后期版本而言。
afterTagAdded: function (event, ui) {
var e = $.Event("keydown", { keyCode: 32 });
$(".ui-autocomplete-input").trigger(e);
},