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

时间:2014-09-25 10:15:42

标签: javascript jquery

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

狐狸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和名称都分配给dropdrop down所以我不能通过id或name使用jQuery并获得选择的值,而不是我想检查两者都有通过Javascript或jQuery选择的值?

我该怎么做?

此致 Vinit

3 个答案:

答案 0 :(得分:2)

试试这个:您可以使用select对页面上的所有.each()框进行迭代,并将其与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);
        }

      }):
    });

答案 1 :(得分:0)

你可以这样做:

$("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")
}

})

答案 2 :(得分:0)

试试这个:

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