【问题标题】:How to fetch value of selected option in dropdown?如何在下拉列表中获取所选选项的值?
【发布时间】:2012-05-14 07:14:09
【问题描述】:

我的视图中有一个下拉菜单。下拉列表显示枚举值:

      @Html.DropDownListFor(model => model.hobbyhome.HobbyDetailList.First().course, HobbyHomesWebApp.Utility.EnumList.ToSelectList(HobbyHomes.Model.Course.Advance, "Select Course"), "--Select Course--", new { @id="Course"}) <font color="red">*</font>   

课程生成器

  <div class="editor-field">
 <select id="course" name="course"><option value="">--Select Course--              </option>
     <option value="Basic">Basic Level</option>
      <option value="Intermidiate">Intermidiate Level</option>
       <option value="Advance">Advance Level</option>
      </select> <font color="red">*</font>   
              </div>

   var course = from Course c in Enum.GetValues(typeof(Course))
                         select new { ID = c, Name = c.ToString() };
                        ViewData["course"] = new SelectList(course, "ID", "Name");

参与的输入选项有基本、中级和高级

我正在尝试根据所选值填充其他下拉列表:

    $("#Course").change(function () {
        var Hobbyid = $("#Hobby").val();
        var Cid=$("#Course").val();
        var urlHobbyhome = '@Url.Action("FetchStateByHobbyId")';
        $.ajax({
            type: "POST",
            url: urlHobbyhome,
            data: { id: Hobbyid,cid:Cid },
            success: function (data) {
                $('#State').empty();
                $('#State')
                        .append($('<option>', { value: "0" })
                        .text("-- Select State --"));
                $.each(data, function (key, value) {

                    $('#State')
                        .append($('<option>', { value: value.Value })
                        .text(value.Text));
                });
            }
        });

我怎样才能做到这一点?

【问题讨论】:

  • 请添加使用相关输入生成的html...
  • @Romias 我已经编辑了我的问题
  • 我没有看到任何新的 HTML...您的问题还是一样,或者现在您可以获取课程 ID 并找到其他问题?
  • @Romias 我仍然无法获得 CourseId :(...
  • 请...发布您在浏览器上看到的 HTML。到目前为止,您发布了 javascript、Razor 视图和控制器……我们需要查看生成的 HTML。

标签: jquery ajax asp.net-mvc-3 drop-down-menu asp.net-ajax


【解决方案1】:

您可以使用 jQuery 附加到 DropDownList 的 Change 事件。

$("#YourDropDownID").change(function () {
     var itemSel = $("#YourDropDownID").val();
     // Do your Ajax logic using the selected value stored in variable 'itemSel'

});

编辑:

测试这个功能:

$("#course").change(function () {
        var Hobbyid = $("#Hobby").val();
        var Cid=$("#course").val();
        alert("This is the CourseID:" + Cid);  
        var urlHobbyhome = '@Url.Action("FetchStateByHobbyId")';
        $.ajax({
            type: "POST",
            url: urlHobbyhome,
            data: '{id:' + Hobbyid + 'cid:' + Cid + '}',
            success: function (data) {
                $('#State').empty();
                $('#State')
                        .append($('<option>', { value: "0" })
                        .text("-- Select State --"));
                $.each(data, function (key, value) {

                    $('#State')
                        .append($('<option>', { value: value.Value })
                        .text(value.Text));
                });
            }
        });
});

我将“data”属性更改为字符串连接,因为使用“id”名称时出现了一些问题。添加了一个显示所选课程 ID 的警报,并将选择器更改为使用小写 ID。请用我的完全替换您的 javascript 函数,然后让我们现在。

【讨论】:

  • 我做了同样的事情,但我无法获得所选下拉列表的值.....可能是因为它是一个枚举
  • 只需通过 Firebug 或查看生成的 HTML,您的 DDL 的真实 ID 是什么。可能类似于:'hobbyhome.HobbyDetailList.Course'
  • 为了避免这种情况,我专门给它一个 ID 为“new {@id="course"}” 但它仍然没有给我任何价值,因为我的 ajax 没有被调用我会更新我的问题并告诉你我做了什么
  • @priya77,请发布为该 DropDownList 生成的 HTML-
猜你喜欢
  • 1970-01-01
  • 2013-02-25
  • 2012-05-23
  • 2023-03-29
  • 2013-08-16
  • 1970-01-01
  • 1970-01-01
  • 2011-04-19
  • 1970-01-01
相关资源
最近更新 更多