2017-09-04 236 views
0

我使用JavaScript應用程序並使用JSON列表填充下拉菜單。從菜單中選擇下拉菜單

     $("#address").append($('<option></option>').attr("value", "1").text("")); 
         $.each(wallets, function (index, wallet) { 

          if (selectedCurrency === wallet["currency"].toString().trim()) { 
           $("#address").append($('<option></option>').attr("value", "1").text(wallet["address"])); 
          } 
         }) 

的UI看起來是這樣的,

enter image description here

如果我(在圖片等)選擇空項目,我想在控制檯打印empty。否則,我想打印地址值。我的意圖是編寫更多的代碼,但是,這是我想開始的地方。我有的代碼,

$("#address").change(function() { 

     if($(this).val()===""){ 
      console.log('empty'); 
     } 

     else{ 
      console.log($(this).val()); 
     } 
} 

但是,它只在控制檯打印1,不能區分空白欄和所關心的地址。如果我使用console.log("The value is " + $(this).text());change函數內部,它打印每一個信息都聚集在控制檯,

The value is mp51mPC38Wtcmybdyd9MPEB2bKnw6eYbCsmqXjM7Mmg6B5LWMad7mHJi339ddaj7xXdBmvXxP1GmXXKojWQJKjgeoASnXVNXCS47z6n41jE2BKKpV6LsPb7dDdStjtuJf1FrYvMMmw1jtrWU5DADxvNR421MKFW1fposgzVMBymnzcZVF4jtZtGAggM5GuLog3Y5o52Mx4xMmq5Rgggfgy2TiRsvtcGm3rxx12R8XbYi9omkdt7ouyJnDXUp4LzdRSRP3ZhU57gUDKy6n2F2QEKk6Fqqk2yMTope5MYp1RtpT949kemrkdfp6qoVN3YiyJhq6nXPvgr3f7YpkS9j

JSON數據我是一樣的東西,

[ 
    { 
    "id": 1, 
    "code": "BTC", 
    "address": "mp51mPC38Wtcmybdyd9MPEB2bKnw6eYbCs", 
    "currency": "Bitcoin" 
    }, 
    { 
    "id": 2, 
    "code": "BTC", 
    "address": "mqXjM7Mmg6B5LWMad7mHJi339ddaj7xXdB", 
    "currency": "Bitcoin" 
    }, 
    { 
    "id": 4, 
    "code": "BTC", 
    "address": "mvXxP1GmXXKojWQJKjgeoASnXVNXCS47z6", 
    "currency": "Bitcoin" 
    } 

    // some more data 
] 

什麼問題嗎?我的猜測是我做錯了將數據追加到下拉列表並需要更改。

如果需要,我可以提供更多信息....

+0

您設置的值'1'空文本'$( 「#地址」)。追加($( '').attr( 「價值」, 「1」 ).text(「」));'將此值更改爲空。 –

+0

.text to .html()// $(「#address」)。append($('').val(wallet.id).html(wallet.address); – Bugfixer

回答

2

價值1只要改變以""在第一個選項。

$("#address").append($('<option></option>').attr("value", "").text("")); 

$.each(wallets, function (index, wallet) { 
    if (selectedCurrency === wallet["currency"].toString().trim()) { 
      $("#address").append($('<option></option>').attr("value", "1").text(wallet["address"])); 
     } 
}); 

檢查此示例。

$("#address").append($('<option></option>').attr("value", "").text("")); 
 
$("#address").append($('<option></option>').attr("value", "1").text("123")); 
 
$("#address").append($('<option></option>').attr("value", "2").text("456")); 
 

 
    
 
$("#address").change(function() { 
 

 
     if($(this).val()===""){ 
 
      console.log('empty'); 
 
     } 
 

 
     else{ 
 
      console.log($(this).val()); 
 
     } 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<select id="address"> 
 
</select>