需要帮助比较数组与var

时间:2010-07-09 19:29:45

标签: javascript jquery

嗨,我似乎无法做到这一点。基本上,如果选择列表的值是“USA”,“CAN”或“MEX”,则它应该返回true。任何其他值都应返回false。如果值为“USA”

,则仅返回true
$.validator.addMethod(
"ReutersNA",
function(value, element) {
    var selectedCountry = $("#Country").val();
    var NorthAmerica = new Array("USA","CAN","MEX");
    if($.inArray(selectedCountry,NorthAmerica)) {
        return false;
    } else return true;
}, "Cannot select Reuters News outside of North America."
);

3 个答案:

答案 0 :(得分:3)

return $.inArray(selectedCountry,NorthAmerica) != -1;

$.inArray返回找到它的索引,或-1。索引0是假的,所以在那种情况下它转到了else子句并返回true。对于其他一切,它返回false。

答案 1 :(得分:1)

我不是Jquery专家,但这是来自Jquery Site .inArray,你应该知道 inArray返回索引并且:

  

“因为JavaScript将0视为   松散地等于假(即0 ==   假,但是0!==       false),如果我们检查数组中是否存在值,我们就是   需要检查       如果它不等于(或大于)-1。“

因此,您应该在if语句中尝试!= -1 > -1 ,如下所示

if($.inArray(selectedCountry,NorthAmerica) != -1)  

if($.inArray(selectedCountry,NorthAmerica) > -1)  

答案 2 :(得分:0)

返回索引。并且如果确实找到它,你会返回false!

尝试将其更改为:

if($.inArray(selectedCountry,NorthAmerica) > 0) {
    return true;
} 
else{

   return false;
}