当我在输入字段中按@时,我想要电子邮件地址的自动建议 例: 当我写一些名字如“约翰”并按@然后自动建议如下:
john@gmail.com
john@yahoo.com
john@hotmail.com
任何人都可以在JavaScript中提出建议
答案 0 :(得分:2)
您可以通过覆盖此answer中提到的jQuery.ui.autocomplete中的keypress事件来执行此操作。如果没有覆盖,你可能需要做很多事情,如 @ Brad's answer所示。
$(function () {
var acList = ['gmail.com',
'yahoo.com',
'hotmail.com'
];
var lastDot = -1;
$("#tags").autocomplete({
minLength: 0,
source: function (request, response) {
if (lastDot>=0) {
response($.ui.autocomplete.filter(
acList, extractLast(request.term.substring(lastDot+1))));
}
},
focus: function () {
return false;
},
select: function (event, ui) {
var terms = split(this.value);
terms.pop();
terms.push(ui.item.value);
terms.push("");
this.value = this.value.substr(0,lastDot+1);
this.value += terms.join("");
return false;
}
}).on("keypress", function (e) {
var keys = [];
keys.unshift(e.which);
if (String.fromCharCode(keys[0]) == "@") {
lastDot = $("#tags").val().length;
}
});
function split(val) {
return val.split(/,\s*/);
}
function extractLast(term) {
return split(term).pop();
}
});