4

参考までに: これは、回答ごとに入力フィールドが 1 つだけの簡単なクイズ用です。

入力フィールドに入力された値が正しいかどうかを確認する次の Javascript if ステートメントがあります (この場合、入力された値が「england」である場合)。

$('input').keyup(function () {
    if ($(this).val().toLowerCase() == 'england') {
        //Stuff
    } else {
        //Other Stuff
    };
});

ただし、別のスペルを許可したいので、質問ごとにいくつかの可能な回答が必要です-これには配列を使用するのが賢明なようです...

var ans1 = new Array();
ans1[0] = "England";
ans1[1] = "Englund";
ans1[2] = "Ingland";

if ステートメントを変更して、「入力フィールドの値が配列の値のいずれかと等しい場合は、次のことを行う」と言うにはどうすればよいですか?

どんな助けでも大歓迎です!ありがとうございました。

4

6 に答える 6

5

次を使用してこれを行うことができます.inArray()

if ($.inArray($(this).val(), ans1) > -1) {
    //Stuff
}

ここで、コード$.inArray($(this).val(), ans1)は、たとえばEngland配列内で指定された値を検索し、ans1そのインデックス (または見つからない場合は -1) を返します。

アップデート

大文字と小文字を区別する検索の場合:

  • 最初に、配列内のすべての値を小文字で入力します
  • 次に、以下のコードを使用します:-

JS:

if ($.inArray($(this).val().toLowerCase(), ans1) > -1) {
    //Stuff
}
于 2013-11-05T10:30:48.950 に答える
4

配列の「indexOf」メソッドを使用できます。値が配列に存在しない場合、これは -1 を返します。

//if answer is in array
if(array.indexOf(answer) != -1){
    //do stuff
}else{
  //do stuff
}
于 2013-11-05T10:32:01.797 に答える
3

これを試して

if(this.value.match(/^(England|Englund|Ingland)$/i))

大文字と小文字を区別しないために正規表現と gi 修飾子を使用する

于 2013-11-05T10:32:31.957 に答える
0

このようにしてください

$('input').keyup(function () {

var ans1 = new Array();
ans1[0] = "England";
ans1[1] = "Englund";
ans1[2] = "Ingland";
for(int i=0;i<ans1.length;i++)
{

    if ($(this).val().toLowerCase() ==ans1[i]) {
        //Stuff
    } else {
        //Other Stuff
    };
}
});
于 2013-11-05T10:31:16.920 に答える
0

おそらく、次のように配列の各要素をチェックすることを検討してください。

var ans1 = new Array();
ans1[0] = "England";
ans1[1] = "Englund";
ans1[2] = "Ingland";

$('input').keyup(function () {
    for (var i = 0; i < ans1.length; i++) {
       if ($(this).val().toLowerCase() == ans1[i]) {
        //Stuff
         } else {
        //Other Stuff
       };
    }
});

最も美しいソリューションではありませんが、うまくいくはずです。

于 2013-11-05T10:31:17.780 に答える
0

jQuery が提供するもの$.inArray:

var found = $.inArray('specialword', words) > -1;

inArray は見つかった要素のインデックスを返すため、0 はその要素が配列の最初の要素であることを示します。-1 は、要素が見つからなかったことを示します。

次のようにスペルを配列に入れます。

words: [
    "England"
    "Inglund"
    "Ingland"
]

単語が見つかった場合、Found は true になります。

一致した単語のインデックスが必要な場合は> -1、行から削除します。

コードは次のようになります。

$('input').keyup(function () {
    var found = $.inArray($(this).val(), words);
    found > -1 ? //Stuff : //otherStuff;

});
于 2013-11-05T10:33:06.493 に答える