如何从选定的下拉列表中获取另一个值

Posted

技术标签:

【中文标题】如何从选定的下拉列表中获取另一个值【英文标题】:How to get another value from the selected dropdownlist 【发布时间】:2021-11-27 12:35:39 【问题描述】:

我有项目的课程

public class Project

    public int Id  get; set; 
    public string Name  get; set; 
    public string Description  get; set; 

然后,它使用下拉列表显示

@html.DropDownListFor(model => model.Id,
    new SelectList(Model.Projects, "Id", "Name", Model.Id),
    "-- Select --",
    new  @class = "form-control" )

如果我选择了一个项目,我可以得到Id和Name,但是如何得到描述呢?

<script>
    $(function () 
        $('#id').change(function () 
            alert('id = ' + $('#Id').val() + ', name = ' + $('#Id :selected').text() + ', description = ' + ???);
        );
    );
</script>

【问题讨论】:

我还会在选择列表项上生成某种 -data-` 属性,因此在您设置@class 的位置以某种方式为-data-description 创建一个新属性,然后将其拉出从那里在您的警报中。我认为DropDownListFor 应该接受字典以及匿名对象类型。所以这样我想你可以传入data-description 的名称,因为new data-description = "" is not valid c# 我尝试使用data属性,比如@Html.DropDownListFor(model =&gt; model.Id, new SelectList(Model.Projects, "Id", "Name", Model.Id), "-- Select --", new @class = "form-control", @data_description = ? ),但是我不知道如何设置data_description,你能把示例代码发给我吗? 对不起,我不能给出一个完整的答案,有一段时间没有使用 MVC。我想如果我没记错的话,你需要遍历Model.Projects 并创建new SelectListItem 而不是使用new SelectList( 方法。如果您可以遍历每个选择列表项,也许您可​​以正确设置描述。 哦,我明白了,感谢您的洞察力 【参考方案1】:

有两种方法

    如果项目列表非常大,您将不得不创建 API 并使用 ajax 来获取描述。

    javascript 中从模型中获取项目列表并找到描述

<script>

var projects = @Html.Raw(Json.Encode(Model.Projects));
console.log(JSON.stringify(projects)); //only for test
 
$(function () 

        $('#id').change(function () 
 
    let id= $('#Id').val();
    let description = null;
     let name = null;
   
projects.forEach((item) => 
    if (item.Id === id) 
      name= item.Name;
      description= item.Description;
     break;
    
);
    alert('id = ' + id + ', name = ' + name + ', description = ' + description);
        );
        
           
</script>

【讨论】:

这个也可以,谢谢 不客气

以上是关于如何从选定的下拉列表中获取另一个值的主要内容,如果未能解决你的问题,请参考以下文章

JqG​​rid 根据另一个 jqgrid 下拉列表中的选定数据在下拉列表中添加值

如何检测下拉列表的选定值

从 Thymeleaf 下拉列表中获取选定的值

使用 JavaScript 从下拉列表中获取选定值 [重复]

下拉以根据单个组件中另一个下拉列表中的选定值刷新值

如何获取下拉列表的选定值的文本? [复制]