如何插入此输入搜索内部选项?

时间:2017-10-06 11:18:50

标签: javascript jquery html

我的HTML包含以下输入搜索框和包含此选择选项的以下标签。

我想将searchBox放在Option中,如果我在那个Select中有10000。要使用searchBox并从那里选择我想要的选项。



searchBox = document.querySelector("#searchBox");
countries = document.querySelector("#btd1");
var when = "keyup"; //You can change this to keydown, keypress or change
searchBox.addEventListener("keyup", function(e) {
	var text = e.target.value;
	var options = countries.options;
	for (var i = 0; i < options.length; i++) {
		var option = options[i];
		var optionText = option.text;
		var lowerOptionText = optionText.toLowerCase();
		var lowerText = text.toLowerCase();
		var regex = new RegExp("^" + text, "i");
		var match = optionText.match(regex);
		var contains = lowerOptionText.indexOf(lowerText) != -1;
		if (match || contains) {
			option.selected = true;
			return;
		}
		searchBox.selectedIndex = 0;
	}
});
&#13;
<!DOCTYPE html>
<html>
<head>
	
</head>
<body style="margin:0;">
	<input id="searchBox" placeholder="Seach Project..." type="search">
  <select id="btd1" name="Project">
							<option disabled hidden="" selected value="">
								Select Project *
							</option>
						</select>
            </body>
            </html>
&#13;
&#13;
&#13;

Option Box不包含任何内容cuz在我的索引中,它有一个JS,用添加按钮添加选项。

任何人都可以告诉我,我该怎么做才能做到这一点?

非常感谢:)

1 个答案:

答案 0 :(得分:1)

是的,这是你的DEMO。我做的是这个;动态获取搜索框的值onkeyup然后计算包含的选项数。然后进入for循环以获得最佳macth并将其写入select。当然然后在有匹配时中断,以防止循环去检查其他匹配并得到匹配较少但匹配的结果。