2016-04-28 49 views
0

所以我有这个JavaScript函数循环通过每个用户帐户,并显示在下拉菜单中。当用户从下拉菜单中选择一个选项时,它将Iban编号作为其主ID存储在ddlAccountFrom中。有没有办法在用户选择一个选项时如何存储两个值,例如Iban和货币到单独的变量中?如何在变量内存储多个下拉值?

function getAccountFrom() { 
    var username = $("#hiddenUsername").val(); 

    var url = "http://localhost:63723/api/BankAccountsApi/GetBankAccounts/?username=" + username + "&id=2"; 
    $.getJSON(url, function (data) { 
      var table = "<select id=\"ddlAccountFrom\">"; 

      table += "<option value=\"-1\">Select an Account</option>"; 
      $.each(data, function (key, val) { 

       table += "<option value=\"" + val.Iban + "\">" + val.Iban + " | " + val.Currency + " | " + val.Balance + "</option>"; 

      }); 
      table += "</select>"; 
      $('#divAccountFrom').html(table); 
    }); 
} 

我在这个函数中使用ddlAccountFrom ..

function Transfer() { 
    var accountFrom = $("#ddlAccountFrom").val(); 
    var accountTo = $("#txtAccountTo").val(); 
    var amount = $("#txtAmount").val(); 


    var url = "http://localhost:63723/api/BankAccountsApi/TransferFunds/? 
    ibanFrom=" + accountFrom + "&ibanTo=" + accountTo + "&amount=" + amount; 

    $.getJSON(url, function (data) { 
     alert(data); 
    }) 

    .error (function() { 
     alert("Not enough balance! The amount entered exceed the balance found in this account. Please try again."); 
    }) 

} 
+0

那么,你应该在用户选择一个选项时显示你的代码,但是通常你可以使用分隔符连接这些值并将其放入选项的'value'中。 –

回答

1

您可以使用该数据自定义属性,像这样:

table += "<option value=\"" + val.Iban + "\" data-currency=\"" + val.Currency + "\">" + val.Iban + " | " + val.Currency + " | " + val.Balance + "</option>"; 

要访问的变量看jquery-cant-get-data-attribute-value 所以您可以阅读:

var selectedCurrency= $("#ddlAccountFrom :selected").data('currency'); 
+0

数据货币是一个变量吗? –

+0

是的,你可以通过jQuery(你的选择器).data('currency')或jQuery(你的选择器).attr('data-currency')读取。 – lamp76

+0

像这样--- var currency = $(“#ddlAccountFrom”)。data('currency'); - ?? –

0

您可以:

  1. 用分离器(用于前myIban#myCurrency)串接在1串的2个数据,然后分割你的价值来拿回你的2个不同的数据
  2. 听你的下拉菜单的改变,例如加入onchange=updateData(val.Iban, val.Currency)属性您选择HTML,并在您的JS:

    var currentIban, currentCurrency; 
    
    function updateData(iban, currency) { 
        currentIban = iban; 
        currentCurrency = currency; 
    } 
    
  3. 添加一个数据自定义属性,如数据货币或数据IBAN