嗨,我似乎无法做到这一点。基本上,如果选择列表的值是“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."
);
答案 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;
}