0

以下のコードでは、フォーム入力があります。ユーザーがたまたま配列にある文字列を検索すると、クエリが出力されます。ユーザーがたまたま配列にない文字列を検索したときに、エラー メッセージを出力したいと考えています。問題は、ユーザーが配列内のアイテム [0] 以外の文字列 (この場合はipsum ) を検索する、エラー メッセージが表示され、クエリが返されることです。以下のコードを使用してこれを修正できるかどうか、またはこれを行うための別の方法論を追求する必要があるかどうかを知りたいです (私はそれが意見であることを知っています)。

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

</form>


<script>


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


var data = ["lorim", "ipsum"];

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>
4

2 に答える 2

1

:) それを続けてください。

覚えておくべきことは、すべてを検索した後にのみ「いいえ、見つかりませんでした」と言うことができるということです. だから...フラグを立ててください:)

var didntFind = true;
for (var i = 0; i < data.length; i++) {
    if (data[i] === formInput) {
        alert(data[i]);
        didntFind = false;
        break;
    }
}

if (didntFind) alert('error!');

i === data.length-1 ループの後にかどうかを確認することもできますが、上記のコードは混乱を招くことが少ないはずです。お役に立てれば

于 2012-10-05T19:22:17.693 に答える
1

ループは必要ありません。 indexOfを使用するだけです。

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

    if (data.indexOf(formInput) === -1) {
        // they entered a bad search term
        return;
    }

    // do the rest of your search logic
};
于 2012-10-05T19:22:42.277 に答える