【问题标题】:Dropdown json data with JQuery displays "undefined" result带有 JQuery 的下拉 json 数据显示“未定义”结果
【发布时间】:2019-09-08 23:26:15
【问题描述】:

我有一个选择,我想用 json 数据结果填充,但数据显示为“未定义”。根据场景,当一个按钮被按下时,根据选择的id将数据排序到下拉列表中。

<select id="myDropDown" name="myDropDown"></select>
function bindItems(MarkaID) {

        var MarkaID = 136; //entering data manually
        $.ajax({
            type: 'POST',
            dataType: "json",
            data: JSON.stringify({ MarkaID: MarkaID }),
            contentType: "application/json; charset=utf-8",
            url: '/Home/GetUrunCinsleriForMarka'
        }).done(function (jsonObj) {

            var listItems = "";
            for (i in jsonObj) {

                listItems += "<option value='" + jsonObj[i].Key + "'>" + jsonObj[i].Value + "</option>";

            }
            $("#myDropDown").html(listItems);

        });
    }
[HttpPost]
        public JsonResult GetUrunCinsleriForMarka(int MarkaID)
        {
            List<SqlParameter> sqlparameters = new List<SqlParameter>();
            sqlparameters.Add(new SqlParameter("@MarkaID", MarkaID));
            var urunCinsList = db.Database.SqlQuery<UrunCinsleriForMarka>("SP_GetUrunCinsleriForMarka @MarkaID", sqlparameters.ToArray());

            return Json(urunCinsList, JsonRequestBehavior.AllowGet);
        }

像这样的示例数据 id 和值

96  | Power Supply
71  | Cameras
6   | Alarm Devices
118 | Mouse
11  | Fever-measuring devices
58  | Kettle
59  | ..............
137 | ..............
139 | ..............

【问题讨论】:

  • 检查您是否从 ajax 调用获得 JSON 响应..
  • 我已经检查了结果来了
  • 0: {UrunCinsID: 96, UrunCinsi: "电源"} 1: {UrunCinsID: 71, UrunCinsi: "相机"} 2: {UrunCinsID: 6, UrunCinsi: "报警设备"} 3 : {UrunCinsID: 118, UrunCinsi: "鼠标"} 4: {UrunCinsID: 11, UrunCinsi: "发烧测量设备"} 5: {UrunCinsID: 58, UrunCinsi: "水壶"}。 . . .
  • 我添加了一个 JFiddle 代码。试试看jsfiddle.net/u5vek2jc
  • 感谢您的帮助。

标签: jquery json model-view-controller


【解决方案1】:

我已经为您的问题制作了示例代码。请通过以下代码:

HTML 代码:

<select id="questionNumber" class="form-control">
   <option>Select Number</option>
</select>

JQuery 代码:

var result = {data:[
    {
    id:"5",
    number: "5"
  },
  {
    id: "89",
    number: "89"
  }
]}
$.each(result.data, function (key, value) {
    $("#questionNumber").append($('<option>', {
        value: value.id,
        text: value.number,
        'data-mark': value.id
    }));
});

JSFIddle 链接在这里:

https://jsfiddle.net/u5vek2jc/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 1970-01-01
    • 2012-04-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-30
    • 2016-04-08
    相关资源
    最近更新 更多