Javascript 使用jQuery关注第一个可见的空选择/下拉列表

Javascript 使用jQuery关注第一个可见的空选择/下拉列表,javascript,jquery,jquery-selectors,html-select,Javascript,Jquery,Jquery Selectors,Html Select,我对所需字段进行了一些验证,然后我想将重点放在第一个可见的文本区域或文本框或选择框上 下面的代码可以很好地用于textarea和textbox,但不能用于select。如何在下面的jquery语句中检查空select。任何帮助都将不胜感激 $("textarea:empty:visible,input[value='']:visible,select option[value='']:visible").first().focus(); 以下是。您可以使用.filter() 演示----->问

我对所需字段进行了一些验证,然后我想将重点放在第一个可见的文本区域或文本框或选择框上

下面的代码可以很好地用于textarea和textbox,但不能用于select。如何在下面的jquery语句中检查空select。任何帮助都将不胜感激

$("textarea:empty:visible,input[value='']:visible,select option[value='']:visible").first().focus();
以下是。

您可以使用
.filter()


演示
----->

问题是您试图将焦点设置在选项上,而不是选择。顺便说一句,不确定选项可以是:visible这是我的尝试,我不确定如何检查除此之外的空值。我还尝试了
select:empty:visible
select[value='']
它们也不起作用……但这将始终选择第一个下拉列表,忽略放置在下拉列表之前的空文本区域和文本框。我的意思是,如果第一个textarea和下拉列表是空的,那么焦点应该放在表单中的第一个控件上,即textarea。这非常有效!因此,我们无法像使用textarea和input那样在一行中完成这项工作:D
$("textarea:empty:visible,input[value='']:visible,select").filter(function () {
    if ($(this).is('select')) {
        if (this.value === "") {
            return true;
        } else {
            return false;
        }
    } else {
        return true;
    }
}).first().focus();