如何在没有下拉列表名称,ID或类的情况下获取下拉选定值

时间:2014-12-10 03:35:55

标签: javascript jquery html asp.net-mvc

我的下拉菜单, MVC代码

@foreach (var attribute in Model)
{
    string controlId = string.Format("product_attribute_{0}_{1}_{2}", attribute.ProductId, attribute.ProductAttributeId, attribute.Id);
    @switch (attribute.AttributeControlType)
    {
        case AttributeControlType.DropdownList:
        {
            <select name="@(controlId)" id="@(controlId)">

                @foreach (var pvaValue in attribute.Values)
                {
                    <option>@pvaValue.Name</option>
                }
            </select>
        }
        break;
    }
}

Html生成的代码:

<dd>
  <select id="product_attribute_5_1_13" name="product_attribute_5_1_13">
    <option value="36">Black</option>
    <option value="37">White</option>
  </select>
</dd>

<dd>
  <select id="product_attribute_5_2_14" name="product_attribute_5_2_14" class="valid">
    <option value="38" selected="selected">1 test</option>
    <option value="39">2 Test</option>
  </select>
</dd>

现在我想要使用jquery选择第二个下拉列表或值。

备注: 它的id和name值对于所有下拉列表都是动态的。

如何在按钮点击时获得下拉选择值?

2 个答案:

答案 0 :(得分:0)

您可以按eq()方法选择第n个选择:

var value = $('select').eq(1).val()

这是JsFiddle Demo

答案 1 :(得分:0)

如您所知,您的问题尚不清楚。你没有提到表单,所以我不会认为点击的按钮是表单提交按钮。查看此内容的唯一逻辑方法是,您可以在按钮单击时返回表示页面上name/value所有 select元素的数组/对象:

$(function() {
    $('button').on('click', function() {
        var values = $('select').map(function(i,sel) {
            var val = {};
            val[sel.name] = sel.value;
            return val;
        }).get();
    });
    console.log( values );
    //sample output: [{"product_attribute_5_2_13":"36"}, {"product_attribute_5_2_14":"38"}]
});