首页 > 解决方案 > 如何将json中的值显示到下拉列表中

问题描述

我有一个已经填充的下拉列表。因此,当页面加载时,它必须显示先前选择的值。我从数据库中获取用户选择的值。

这是当前的下拉菜单

       ```  <select name="Items"  valtype="required" runat="server" id="Items"> 
                        <option value="-1">--Select--</option>  
                        <option value="Milk">Milk</option>
                        <option value="Sugar">Sugar</option>
                        <option value="Coffee">Coffee</option>
                       </select> ```                                                                         

这是我从数据库中读取的代码

function Changed(itemreturned)// pass value from db
{
  var items=$('#Items');
 //what i tried 
items.val=items.innerHTML + '<option value="' + items[0].Items + '">' + itemreturned[0].Items + '</option>';
// second try
item.val=item.options[itemreturned[0].Items];

}

json结果

  itemreturned
{ 
 Items:Milk
}

所以我想要做的是,由于“牛奶”被退回,我想在项目下拉框中显示它而不是“--select--”但是我已经在列表中为“牛奶”加载了一个选项,所以如何我是否匹配从数据库返回的结果和列表中的项目并显示该特定值。

标签: javascriptjquery

解决方案


我相信这就是你想要的:

function Changed(itemreturned) // pass value from db
{
  var items = $('#Items');
  items.val(itemreturned.Items);
}

首先jQueryitem.val(yourvalue)不是item.val = yourvalue

其次,在您的代码中item.val,我猜item应该是items您在编写代码时需要慢一点,并使用控制台,所以检查错误,因为这会说不item存在任何命名的东西。

演示

function Changed(itemreturned) // pass value from db
{
  var items = $('#Items');
  items.val(itemreturned.Items);
}

var itemreturned = {
  Items: "Milk"
}

Changed(itemreturned)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<select name="Items" valtype="required" runat="server" id="Items">
  <option value="-1">--Select--</option>
  <option value="Milk">Milk</option>
  <option value="Sugar">Sugar</option>
  <option value="Coffee">Coffee</option>
</select>


推荐阅读