这是我第一次尝试将数组合并到我的javascript代码中。我使用的是一个包含文本输入的表单,其中只能提交蓝色,黄色,灰色,橙色或粉红色,否则应该有警报。显然我犯了一些错误,因为我的值没有被提取......任何东西都可以输入到输入#color中,表单仍然可以提交,无论我输入什么,都不会有任何警报。 代码如下。 谢谢。
}
// Verifies Colors
var colors = ["Blue", "Yellow", "Gray", "Orange", "Pink"];
if ($('#color').val() != colors) {
alert("These are not the right colors!");
return false;
}
return true;
}
答案 0 :(得分:1)
试
if(colors.indexOf($("#color").val()) == -1 ){
alert("These are not the right colors!");
return false;
}
[编辑] 这是一个假设,我认为#colors是输入类型=“文本”,或者选择,在任何一种情况下,我建议要注意单词的大小写,考虑到输入可能都是小写或全部大写或一个MiX oF BoTh。
答案 1 :(得分:1)
因为你已经在使用jquery。
var colors = ['blue', 'red', 'whatever'];
if ($.inArray($("#color").val(), colors) < 0) {
alert("These are not the right colors!");
return false;
}
对于Rafael和Kyle来说,虽然jquery会使用indexOf,如果可以的话,来自jquery源
inArray: function( elem, arr, i ) {
var len;
if ( arr ) {
if ( core_indexOf ) {
return core_indexOf.call( arr, elem, i );
}
len = arr.length;
i = i ? i < 0 ? Math.max( 0, len + i ) : i : 0;
for ( ; i < len; i++ ) {
// Skip accessing in sparse arrays
if ( i in arr && arr[ i ] === elem ) {
return i;
}
}
}
return -1;
}
其中core_indexOf是array.indexOf的别名
core_indexOf = core_deletedIds.indexOf