我相信你们已经见过这个优秀的插件:
http://code.drewwilson.com/entry/autosuggest-jquery-plugin
我检查了一下,找不到仅在键入特定字符时启动自动建议插件的选项。在本例中,我需要它是 at 符号“@”。
我看到它可以选择设置最小字符数: minChars:数字(默认为 1)
但是,我需要在键入 @ 符号之前不显示下拉列表。
仅供引用,以下是 jquery.autoSuggest.js 中的选项
var defaults = {
asHtmlID: false,
startText: "Enter Name Here",
emptyText: "No Results Found",
preFill: {},
limitText: "No More Selections Are Allowed",
selectedItemProp: "value", //name of object property
selectedValuesProp: "value", //name of object property
searchObjProps: "value", //comma separated list of object property names
queryParam: "q",
retrieveLimit: false, //number for 'limit' param on ajax request
extraParams: "",
matchCase: false,
minChars: 1,
keyDelay: 400,
resultsHighlight: true,
neverSubmit: false,
selectionLimit: false,
showResultList: true,
start: function(){},
selectionClick: function(elem){},
selectionAdded: function(elem){},
selectionRemoved: function(elem){ elem.remove(); },
formatList: false, //callback function
beforeRetrieve: function(string){ return string; },
retrieveComplete: function(data){ return data; },
resultClick: function(data){},
resultsComplete: function(){}
};
var opts = $
谢谢!
请您参考如下方法:
我认为你可以使用beforeRetrieve:
beforeRetrieve: function(string){
if (string.indexOf('@') == -1) return "";
return string;
}
来自文档:
beforeRetrieve:回调函数 - 在发出 AJAX 请求之前或在搜索本地对象之前运行的自定义函数。这用于在处理搜索字符串之前对其进行修改。因此,如果用户在 AutoSuggest 框中输入“jim”,您可以调用此函数在其查询前面添加“guy_”。进行最终查询=“guy_jim”。搜索查询被传递到该函数中。示例: beforeRetrieve: function(string){ return string; }
