Javascript 检查是否所有可见的选择框都选择了某些内容?

Javascript 检查是否所有可见的选择框都选择了某些内容?,javascript,jquery,html,Javascript,Jquery,Html,您好,我有隐藏的选择框,每次我尝试检查是否所有的选择框都被选中,并且它保持包括隐藏的选择框,我如何使下面的代码只适用于可见的选择框?已尝试。筛选器“:可见”,但没有帮助 if($('option[disabled]:selected').length == 0){ // ALL the select boxes have something selected rather than the default option alert("success"); }else{ ale

您好,我有隐藏的选择框,每次我尝试检查是否所有的选择框都被选中,并且它保持包括隐藏的选择框,我如何使下面的代码只适用于可见的选择框?已尝试。筛选器“:可见”,但没有帮助

if($('option[disabled]:selected').length == 0){
   // ALL the select boxes have something selected rather than the default option
   alert("success");
}else{
    alert("fail");
}
其中一个可见的选择框:

还有一个隐藏的例子:


给你的父div一个类,比如div


给你的父div一个类,比如div


尝试在可见div上迭代:

function checkAllSelected() {
    var unselected = 0;
    $('.two-wrap').not('.hidden').each(function() {
        if ($(this).find('option:selected').not('[disabled]').length === 0) {
           unselected++;
        }
    });
    return unselected === 0;
}

尝试在可见div上迭代:

function checkAllSelected() {
    var unselected = 0;
    $('.two-wrap').not('.hidden').each(function() {
        if ($(this).find('option:selected').not('[disabled]').length === 0) {
           unselected++;
        }
    });
    return unselected === 0;
}

您可以只查询未隐藏的div中的选择,而不是进行迭代。举个例子,试试看

$('div:not(.hidden) div select')

您可以只查询未隐藏的div中的选择,而不是进行迭代。举个例子,试试看

$('div:not(.hidden) div select')

尝试迭代所有复选框,然后使用“最近”和“长度”查看父元素是否有隐藏的类

$( "select" ).change(function () {
    var message = "success";  
    $('select').each(function() {
        if ( $(this).val() == null && $(this).closest('.hidden').length == 0 ) {
            message = "fail";  
        }
    }); 
    alert(message);
});

尝试迭代所有复选框,然后使用“最近”和“长度”查看父元素是否有隐藏的类

$( "select" ).change(function () {
    var message = "success";  
    $('select').each(function() {
        if ( $(this).val() == null && $(this).closest('.hidden').length == 0 ) {
            message = "fail";  
        }
    }); 
    alert(message);
});

您可以将未选择选项的选择计数与隐藏选择计数相匹配

$one amount,two-amount.onchange,函数{ 如果$'select option[禁用]:selected'.length==$.hidden select.length{ 成功; }否则{ 警报失败; } }; .隐藏{ 显示:无; } 一 -选择一个金额- 十万一 225000一 45万一 1750000一个 二 -选择一个金额- 十万一 225000一 45万一 1750000一个 二 -选择一个金额- 200002 4300002 26万2 五十万二
您可以将未选择选项的选择计数与隐藏选择计数相匹配

$one amount,two-amount.onchange,函数{ 如果$'select option[禁用]:selected'.length==$.hidden select.length{ 成功; }否则{ 警报失败; } }; .隐藏{ 显示:无; } 一 -选择一个金额- 十万一 225000一 45万一 1750000一个 二 -选择一个金额- 十万一 225000一 45万一 1750000一个 二 -选择一个金额- 200002 4300002 26万2 五十万二
感谢您的时间,但这似乎不起作用,即使在您的代码中修复了两个错误-函数中的额外花括号和引号中的消息var。感谢这是完美的:感谢您的时间,但这似乎不起作用,即使在您的代码中修复了两个错误-函数和消息中的额外花括号引号中的var。谢谢这是完美的:
$( "select" ).change(function () {
    var message = "success";  
    $('select').each(function() {
        if ( $(this).val() == null && $(this).closest('.hidden').length == 0 ) {
            message = "fail";  
        }
    }); 
    alert(message);
});