嗨,我似乎无法正确理解。基本上,如果选择列表的值为“ 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."
);

最佳答案

我不是Jquery专家,但这来自.inArray的Jquery Site,您应该意识到inArray返回索引,并且:


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


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

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


要么

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

关于javascript - 需要帮助将数组与var比较,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3215927/

10-11 23:27