4

仅供参考:这是一个简单的测验,每个答案只有一个输入字段。

我有以下 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

jQuery 提供$.inArray

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

请注意,inArray 返回找到的元素的索引,因此 0 表示该元素是数组中的第一个。-1 表示未找到该元素。

将您的拼写放在这样的数组中:

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

如果找到单词,Found 将为真。

如果> -1要从行中删除匹配单词的索引。

您的代码将是这样的:

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

});
于 2013-11-05T10:33:06.493 回答
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 回答