如何获取所有不同的下拉列表是否已选择值

How to get all different dropdown have selected value or not

本文关键字:下拉列表 是否 选择 何获取 获取      更新时间:2023-09-26

我想检查页面上的所有下拉列表是否都有选择值?

fox Ex:-

<select id="@model.Id">
     <option value="0">---</option>
     <option value="1">abc</option>
     <option value="2">xyz</option>
</select>
<select id="@model.Id">
     <option value="0">---</option>
     <option value="14">abc</option>
     <option value="25">xyz</option>
</select>

两者都不是同一个页面,问题是动态id和名称被分配给了两个下拉列表,所以我不能通过id或名称使用jQuery来获得所选值,我不想通过Javascript或jQuery检查两者是否都有所选值吗?

我该怎么做?

谨致问候,Vinit

试试这个:您可以使用.each()迭代页面上的所有select框,并将其值与0进行比较。如果选择值为0,则意味着它未被选择,否则将被选择。

$(function(){
  $('select').each(function(){
     var value = $(this).val();
     var id = $(this).attr('id');
     if(value==0)
       alert('this dropdown has no selected value, id = '+id);
     else
       alert('this dropdown has selected value, id = '+id);
  }):
});

编辑-因为OP想要检查是否选择了两个下拉菜单,然后显示按钮,否则隐藏它,使用下面的代码

$(function(){
      $('select').change(function(){
        var totalUnselectedDropdown = $('select option[value="0"]:selected').length;
        if(totalUnselectedDropdown==0)
        {
          // enable button
          $('#buttonId').prop('disabled',false);
        }
        else
        {
          // disable button
          $('#buttonId').prop('disabled',true);
        }
      }):
    });

您可以这样做:

$("select").each(function(){
alert($(this).val()) // will alert selected option value attribute value
if($(this).val() > 0) // value greater than 0 means value selected
{
 alert("Value Selected")
}
})

试试这个:

$("select").each(function(){
            if(parseInt($(this).val()) > 0){
                //all select have selected value
            }
            else
            {
                //any one/all select have not selected value
                return false;
            }
        });