吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 1234|回复: 3
收起左侧

[求助] twitter typeahead文本自动补全JS库的问题

[复制链接]
cqwcns 发表于 2019-10-14 17:37
twitter typeahead是个非常好用的文本自动补全填充JS,功能用户在input输入关键字过,会出现列表用户点选补全(类似百度搜索框),引入我的网址,功能已经实现,还有个问题未解决,不知道怎么下手,请各位大哥帮忙看看。

我想实现当input失去焦点,就判断input内容是否在列表中,如果不在,则清空input(目的是input最后提交的内容必须是在列表选择的,不允许用户随便填)。
或者如何获得remote返回结果数组?我再写判断代码。

twitter typeahead官网:http://twitter.github.io/typeahead.js/examples/

谢谢

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

husiyu317 发表于 2019-10-14 17:44
好东西,收藏了。
 楼主| cqwcns 发表于 2019-10-14 20:49
我的代码:

[JavaScript] 纯文本查看 复制代码
//==搜索文本框变量=================
	var vSouSuoInp = "",
		arrTypeahead;

	arrTypeahead = new Bloodhound({
		datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
		queryTokenizer: Bloodhound.tokenizers.whitespace,
		remote: {
			url: "null",
			wildcard: '%QUERY',
			rateLimitBy: 'throttle',
			rateLimitWait: 2000
		}
	});

	//==搜索文本框变量赋值=================
	$("#divMainContent").on("focus", ".typeahead", function () {
		let arrDataSousuo = $(this).data("sousuo").split(",");
		vSouSuoInp = arrDataSousuo[0];
		arrTypeahead.remote.url = arrDataSousuo[1] + '?key=%QUERY&vBiao=' + arrDataSousuo[2] + '&vZiDuan=' + arrDataSousuo[3] + '&vDISTINCT=' + arrDataSousuo[4];

		if ($(this).data("inset") == "0") {

			$('.typeahead').typeahead({
				minLength: 2,
				highlight: true
			}, {
				name: 'arr-Typeahead',
				limit: 10,
				display: 'value',
				source: arrTypeahead,
				templates: {
					notFound: '<span style="margin: 0 10px"><i class="icon-exclamation-sign"> </i>无匹配结果</span>'
				}
			});

			$(this).data("inset", "1");
			$(this)[0].focus();
		}else{
		
		console.log(arrTypeahead);
			
		};

	});
 楼主| cqwcns 发表于 2019-10-15 21:53
问题已解决,谢谢。
见文本框失去焦点事件。

[JavaScript] 纯文本查看 复制代码
//==搜索文本框变量=================
var vSouSuoInp = "",
vTypeahead,
arrResponse = [];

vTypeahead = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('value'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: "null",
wildcard: '%QUERY',
rateLimitBy: 'throttle',
rateLimitWait: 2000,
transform: function (response) {
arrResponse = response;
return response;
}
}

});

//==搜索文本框变量赋值=================
$("#divMainContent").on("focus", ".typeahead", function () {
let arrDataSousuo = $(this).data("sousuo").split(",");
vSouSuoInp = arrDataSousuo[0];
vTypeahead.remote.url = arrDataSousuo[1] + '?key=%QUERY&vBiao=' + arrDataSousuo[2] + '&vZiDuan=' + arrDataSousuo[3] + '&vDISTINCT=' + arrDataSousuo[4];

if ($(this).data("inset") == "0") {

$('.typeahead').typeahead({
minLength: 2,
highlight: true
}, {
name: 'arr-Typeahead',
limit: 10,
display: 'value',
source: vTypeahead,
templates: {
notFound: '<span style="margin: 0 10px"><i class="icon-exclamation-sign"> </i>无匹配结果</span>'
}
});

$(this).data("inset", "1");
$(this)[0].focus();
};

});

//==搜索文本框失去焦点=================
$("#divMainContent").on("blur", ".typeahead", function () {

if ($(this).val() != "") {
for (i = 0; i < arrResponse.length; i++) {
if ($(this).val() == arrResponse[i]["value"]) {
return
};
};
$(this).typeahead('val', "");
}

});
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-27 00:50

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表