我已经尝试了几件事并在这个网站上进行了搜索,并且不怀疑这个问题已经被很多次回答了,但我仍然没有得到它。
我试图用onkeyup做的是识别被键入的内容。 一旦键入内容并匹配我创建的数组中的国家/地区,它应该执行类似打印到浏览器/屏幕的文本。
代码:
<!DOCTYPE html>
<html>
<body>
<input type='text' id='selectCountry' onkeyup='myFunction()'></input>
<script>
var countries = ['England', 'Netherlands', 'Germany'];
</script>
</body>
</html>
&#13;
答案 0 :(得分:1)
这应该这样做:
<!DOCTYPE html>
<html>
<body>
<script>
var countries = ['England', 'Netherlands', 'Germany'];
function myFunction() {
var value = document.getElementById('selectCountry').value;
for(var i = 0; i < countries.length; i++) {
if(value === countries[i]) {
console.log('found it!');
break;
}
}
}
</script>
<input type='text' id='selectCountry' onkeyup='myFunction()'></input>
</body>
</html>
&#13;
答案 1 :(得分:1)
输入可以通过键盘之外的其他方式进行更改,因此最好聆听input
事件。
然后,您可以使用indexOf
检查值是否在数组中:
document.getElementById('selectCountry').oninput = function() {
if(countries.indexOf(this.value) >= 0) /* ... */
};
var countries = ['England', 'Netherlands', 'Germany'];
document.getElementById('selectCountry').oninput = function() {
if(countries.indexOf(this.value) >= 0) alert('match');
};
<input type='text' id='selectCountry' />
答案 2 :(得分:0)
您可以使用innerHTML在屏幕上显示文字。
var countries = ['England', 'Netherlands', 'Germany'];
function myFunction() {
var value = document.getElementById('selectCountry').value,
node = document.getElementById('output');
while (node.hasChildNodes()) {
node.removeChild(node.firstChild);
}
for (var i = 0; i < countries.length; i++) {
if (value === countries[i]) {
document.getElementById('output').innerHTML = 'Found it!';
break;
}
}
}
<html>
<body>
<input type='text' id='selectCountry' onkeyup='myFunction()'></input>
<p id="output"></p>
</body>
</html>