如果('数组中的某些内容被输入'){执行代码}

时间:2015-07-24 21:41:38

标签: javascript

我已经尝试了几件事并在这个网站上进行了搜索,并且不怀疑这个问题已经被很多次回答了,但我仍然没有得到它。

我试图用onkeyup做的是识别被键入的内容。 一旦键入内容并匹配我创建的数组中的国家/地区,它应该执行类似打印到浏览器/屏幕的文本。

代码:



<!DOCTYPE html>
<html>
<body>

<input type='text' id='selectCountry' onkeyup='myFunction()'></input>



<script>
var countries = ['England', 'Netherlands', 'Germany'];

</script>

</body>
</html>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:1)

这应该这样做:

&#13;
&#13;
<!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;
&#13;
&#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>