获取选择列表文本

时间:2011-04-19 15:58:45

标签: asp.net asp.net-mvc

当我将我的选择列表绑定到视图中的下拉列表时,我看到我可以在哪里获得所选值(但在我的情况下,它是一个数字)。有没有办法从选择列表中获取描述/文字?

3 个答案:

答案 0 :(得分:0)

这是一种方式:

$(function() {
    $('select').change(function() {
        alert($('select option:selected').text());    
    });   

});

<select>
    <option value="0">Zero</option>
    <option value="1">One</option>
    <option value="2">Two</option>
    <option value="3">Three</option>
</select>

工作jsfiddle:http://jsfiddle.net/wherC/

如果页面上有多个选择元素,则需要相应地更改选择器。

答案 1 :(得分:0)

所选option的值将作为选择列表的表单键传输。

实施例

<select name="list1">
    <option selected value="1">one</option>
</select>

会生成一个键list1=1

如果需要说明,请将说明绑定到选择列表的值。

<select name="list1">
    <option selected value="one">one</option>
</select>

会生成一个键list1=one

如果您使用SelectListItem,则此选项为:

new SelectListItem {
    Text = "one", 
    Value = "one" 
}

答案 2 :(得分:0)

不确定我是否理解您的问题,但是:

假设我们想要用于填充下拉列表的集合来自:

public class Animal
{
    public int ID { get; set; }
    public string Name { get; set; }
}

然后你可以填充你的列表

 @Html.DropDownListFor(model => model.AnimalId, new SelectList(AnimalList, "ID", "Name"))

对于上面的示例,ID是“值”,名称将显示为选项。如果你想要反过来 - 只需替换类属性/字段的名称

如果您希望ID和名称都显示在下拉列表中以生成

<option value="1">1 - Horse</option>

我会选择

@Html.EditorFor(model => model.id, "PickAnimalTemplate", new { animals = ViewBag.Animals})

这是为这个属性定义自定义EditorTemplate,你可以用布局做任何你想做的事情,例如:

@foreach (var item in animals)
{
    <option value="@item.ID">@item.ID - @item.Name</option>
}