1

我在下面的代码中尝试做的是创建一个搜索表单,当搜索输入与任何数组元素匹配时,会弹出一个警报。截至目前,它不起作用。我认为问题是我不确定如何在 if 语句的第一行写出逻辑。

<form>
<input type="text" id="formInput"></input>
<input type = "button" id="search"></input>

</form>


<script>


var search = document.getElementById("search");
var formInput = document.getElementById("formInput").value;

var data = ["yay"];

search.onclick = function(){

for (i=0; i<data.length; i++){

    if (data[i] === formInput) {
      alert(data[i]);
    }   
      else{ alert("not working yet");   }
}
};



</script>
4

1 回答 1

1

将获取输入的行移到 onclick 函数中:

<form>
 <input type="text" id="formInput"></input>
 <input type="button" id="search"></input>
</form>
<script>
 var search = document.getElementById("search");
 var data = ["yay"];

 search.onclick = function() {
    var formInput = document.getElementById("formInput").value;

    for (i=0; i<data.length; i++){
       if (data[i] == formInput) {
          alert(data[i]);
       } else {
          alert("not working yet");
       }
    }
 };
</script>

目前,它只在页面加载时(在用户有机会输入任何内容之前)读取表单输入一次。如果您将该行放在onclick函数中,那么它会在搜索数组之前检查输入。

于 2012-10-04T19:59:21.383 回答