我的页面上有一个select2下拉列表,其中填充了数据库表中的国家/地区。用户能够选择一个以上的国家,从而形成一个数组。我想在数组中搜索两个值。例如:
var selvalues = $(this).val(); //["AS", "US", "CA"]
在下拉菜单的change事件中,如果“ US”是值之一,并且数组还包含一个非“ US”值,则抛出错误。
到目前为止,我在jQuery中尝试过的一些事情:
$('#countriesSelect').on('change', function(){
var selvalues = $(this).val();
console.log(selvalues .some(x => x !== 'US' && x == 'US'));
if(selvalues.includes('US') || !selvalues.includes('US')){
console.log('You cannot choose a foreign country when current selection is US');
}
if($.inArray("US",selvalues) != -1){
$('#usregions').show().fadeIn();
if($.inArray("US",selvalues) != -1){}
} else {
$('#usregions').hide().fadeOut();
}
$.each(selvalues, function( index, value ) {
console.log()
if(value == 'US' && value != 'US'){
console.log('You cannot choose a foreign country when current selection is US');
}
});
});
根据上述标准,我希望它会引发错误。
答案 0 :(得分:2)
工作逻辑。如果您选择US
和其他选项,则会出错。意味着您至少有两个选择,其中一个是US
。因此,只要存在多个且一个是US
,您就不必在乎其他是什么。
if (selvalues.length > 1 && selvalues.includes('US')) { ...problem... }