jQuery下拉列表(如果选择了值)

jQuery下拉列表(如果选择了值),jquery,select,drop-down-menu,Jquery,Select,Drop Down Menu,我有以下代码: $('[name^=business_] option:selected').each(function(){ var bus = $(this).text(); alert(bus); }); 这将返回所有下拉列表的选定值,其名称以business\uu开头-这很好 我需要的是,如果none下拉列表中的选定值等于或大于1,则返回警报 但我不知道如何实现这一点,我尝试将这些值相加,但没有乐趣-欢迎使用任何指针。迭代下拉列表,一旦找到一个值大于1的值,设置一个标志

我有以下代码:

$('[name^=business_] option:selected').each(function(){
    var bus = $(this).text();
    alert(bus);
});
这将返回所有下拉列表的选定值,其名称以
business\uu
开头-这很好

我需要的是,如果
none
下拉列表中的选定值等于或大于1,则返回警报


但我不知道如何实现这一点,我尝试将这些值相加,但没有乐趣-欢迎使用任何指针。

迭代下拉列表,一旦找到一个值大于1的值,设置一个标志并打破循环

var foundOne = false;
$('[name^=business_] option:selected').each(function() {
    if ($(this).val() >= 1) {
        foundOne = true;
        return false;
    }
});

if (!foundOne) {
    alert('No selected options had a value of 1 or higher'); 
}

迭代下拉列表,一旦找到一个值大于1的下拉列表,设置一个标志并中断循环

var foundOne = false;
$('[name^=business_] option:selected').each(function() {
    if ($(this).val() >= 1) {
        foundOne = true;
        return false;
    }
});

if (!foundOne) {
    alert('No selected options had a value of 1 or higher'); 
}
为什么不使用,然后检查
长度

   var arr = $('select option:selected').filter(function(){
       if(this.value > 1)
           return this; 
    });

    if(arr.length) // arr.length > 0 also valid
        alert('yes');
演示: 为什么不使用,然后检查
长度:

   var arr = $('select option:selected').filter(function(){
       if(this.value > 1)
           return this; 
    });

    if(arr.length) // arr.length > 0 also valid
        alert('yes');
演示:

感谢您的回复,但还没有完全回复-我需要的是,如果所有
10
下拉列表不等于或大于1,则需要发出警报-而不是在每次迭代时。这有意义吗?我想你可能会对
返回false感到困惑。这是从
each()
中的匿名函数返回的。它不会从包含这些内容的任何验证函数返回。您可以
返回false
each()
中断循环并停止迭代。感谢您的更新-这是一段非常有用的代码。这让我困惑了好几个小时!!!感谢您的回复,但还不是很清楚-我需要的是,如果所有
10
下拉列表不等于或大于1,则需要发出警报-而不是在每次迭代时。这有意义吗?我想你可能会对
返回false感到困惑。这是从
each()
中的匿名函数返回的。它不会从包含这些内容的任何验证函数返回。您可以
返回false
each()
中断循环并停止迭代。感谢您的更新-这是一段非常有用的代码。这让我困惑了好几个小时!!!因为我们只需要一个项目就可以满足标准
filter()
将迭代整个列表,即使第一项满足成功条件。因为我们只需要一项就可以满足条件
filter()
将迭代整个列表,即使第一项满足成功条件。