2016-04-28 17 views
0

私は、このユーザーのアカウントをループしてドロップダウンメニューに表示するこのjavascript関数を持っています。ユーザーがドロップダウンメニューからオプションを選択すると、ddlAccountFromに格納されているメインIDとしてIban番号が使用されます。ユーザーがオプションを選択したときに2つの値を格納する方法はありますか?たとえば、IbanとCurrencyを別々の変数に設定する方法はありますか?変数内に複数のドロップダウン値を格納する方法は?

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); 
    }); 
} 

私はあなたがこのように、データのカスタム属性を使用することができます。..この機能で

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

をddlAccountFromを使用しています:変数にアクセスするには

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. は(EX myIban#myCurrency用)セパレータ1つの文字列での2つのデータを連結して、
  2. は、あなたのドロップダウンの変化を聞いて、あなたの2つの異なるデータを取り戻すためにあなたの価値を分割し、例えばあなたのjsのあなたのオプションのHTMLにonchange=updateData(val.Iban, val.Currency)属性を追加し、:

    var currentIban, currentCurrency; 
    
    function updateData(iban, currency) { 
        currentIban = iban; 
        currentCurrency = currency; 
    } 
    
  3. は、データの通貨またはデータIBANのように、データのカスタム属性を追加します
関連する問題