首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >下拉菜单显示的是JSON文件中的第一个值,而不是默认文本

下拉菜单显示的是JSON文件中的第一个值,而不是默认文本
EN

Stack Overflow用户
提问于 2016-12-15 09:46:32
回答 3查看 399关注 0票数 2

Functionality..

用户将选择下拉菜单中显示的项(从JSON文件中读取)。下拉菜单的默认文本应为“请选择商店.”在显示项目名称之前。

发行:

默认文本“请选择商店.”将丢失第一项,而不是默认文本。我使用以下属性设置了以下下拉<select>标记:

代码语言:javascript
复制
<select id="dropDownShops_1">
  <option value="" selected disabled>Please Select Shops ...</option>
</select>  

因此,我想寻求帮助:哪里出了问题,我该如何展示“请选择商店.”在显示从JSON文件中读取的项之前?

代码:

plnkr链接 (不知怎么说,默认文本正在显示,但JSON列表没有显示,但在我的问题中: JSON列表显示在下拉文本中,而不是默认文本)

代码语言:javascript
复制
     //get a reference to the select element
    var $select = $("#dropDownShops_1, #dropDownShops_2");

    $(function() {
      /*******************************************************
       *FUNCTION CALL TO POPULATE DROPDOWN MENU FROM JSON FILE*
       *******************************************************/

      //request the JSON data and parse into the select element
      $.getJSON('ajax/shops.json', function(data) {
        $select.html('');
        console.log("shops: " + data.Shops);
        $.each(data.Shops, function(key, value) {
          console.log("value:" + value);
          //iterate over the data and append a select option
          $select.append("<option >" + value.ShopName + "</option>");
        });
      });

      $("img").on("dragstart", function(event) {
        event.preventDefault();
      });
    });
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>
  <!-- DropDown Menu to choose Participating Outlet -->
  <select id="dropDownShops_1">
    <option value="" selected disabled>Please Select Shops ...</option>
  </select>
  <select id="dropDownShops_2">
    <option value="" selected disabled>Please Select Shops ...</option>
  </select>
</form>

JSON文件:

代码语言:javascript
复制
{
 "Shops": [
{
    "ShopName": "7-ven",
    "ShopID": "7-ven123",
    "Shoplocation": "#02-31"
 }, {
    "ShopName": "8Tarstries",
    "ShopID": "8Tarstries123",
    "Shoplocation": "#B2-K4"
 }, {
     "ShopName": "A|hange",
     "ShopID": "A|hange123",
     "Shoplocation": "#01-202"
 }]   
}
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-12-15 09:57:23

对代码进行如下更改,

代码语言:javascript
复制
$select.append("<option value='' selected disabled>Please Select Shops.. </option>");
 $.each(data.Shops, function(key, value) {

  console.log("value:" + value);
  //iterate over the data and append a select option
  $select.append("<option >" + value.ShopName + "</option>");

});
票数 1
EN

Stack Overflow用户

发布于 2016-12-15 10:12:03

只需将其从代码中删除即可

代码语言:javascript
复制
$select.html('');

代码语言:javascript
复制
// get a reference to the select element
var $select = $("#dropDownShops_1, #dropDownShops_2");


$(function() {

  /*******************************************************
   *FUNCTION CALL TO POPULATE DROPDOWN MENU FROM JSON FILE*
   *******************************************************/

  //request the JSON data and parse into the select element
    var data = { Shops: ['a','b'] }
  
    
    console.log("shops: " + data.Shops);

    $.each(data.Shops, function(key, value) {

      console.log("value:" + value);
      //iterate over the data and append a select option
      $select.append($('<option>',{ value: value, text: value}));

    });
  

  $("img").on("dragstart", function(event) {
    event.preventDefault();
  });
});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<form>

  <!-- DropDown Menu to choose Participating Outlet -->
  <select id="dropDownShops_1">
    <option value="" selected disabled>Please Select Shops ...</option>
  </select>

  <select id="dropDownShops_2">
    <option value="" selected disabled>Please Select Shops ...</option>
  </select>

</form>

票数 0
EN

Stack Overflow用户

发布于 2016-12-15 10:25:05

检查这个解决方案

代码语言:javascript
复制
$('#dropDownShops_1').append("<option >" + value.ShopName + "</option>");

http://plnkr.co/edit/58yMCfo4X7w0NwqS1v0y?p=preview

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41161009

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档