Jquery обновление div после выбора или нажмите

0

У меня есть два массива:

var people = [
    {value:"name1",data:"1",price1:"15",price2:"20"},// prices are in USD by default
    {value:"name2",data:"2",price1:"12",price2:"17"},...
    ]
var rates = [
    {currency:"EUR",rate:"0.732564"},
    {currency:"GBP",rate:"1.2455"},
    {currency:"USD",rate:"1"},...
    ]

У меня есть два раскрывающихся списка с людьми (стоимость) и ставки (валюта), как этот пример:

<select name="currencies" onChange=";" value="GO">
    <option selected="selected">Currency</option>
    <option value="USD">USD</option>
    <option value="EUR">EUR</option>
    <option value="GBP">GBP</option>
    <option value="AUD">AUD</option>
    <option value="CAD">CAD</option>
</select> 

У меня есть радиокнопки вроде этого:

<input type="radio" id="button1" name="button" value="5">
<input type="radio" id="button2" name="button" value="10">

Когда я меняю один из этих кнопок выбора или радио, я хотел бы сделать небольшой математический расчет, чтобы обновить div ниже, но я не знаю, как это сделать.

<div id="result"></div>

Спасибо за помощь!

  • 0
    Если было бы намного проще, если бы у вас был объект вместо массива: {'USD':1, 'EUR':0.7....}
  • 0
    мы можем предположить, что у нас есть, как решить мою проблему?
Теги:

3 ответа

0
Лучший ответ

Предполагая, что вы меняете массив, как я сказал в комментарии:

var rates = {
    EUR:0.732564,
    GBP:1.2455,
    USD:1,...
}

Вы можете использовать этот код:

$('select, input').on('change', function(){
    var currency = $('[name="currencies"]').val();
    if(currency && $('input:checked').length){
         $('#result').html(rates[currency] * parseFloat($('input:checked').val()))
    }
})
0

Вы можете попробовать следующее:

$("input[type='radio']").each(function(){
    $(this).click(function(){
        updateResult();
    });
});
function updateResult(){
    var currency=$('#currencylist')[0].value;
    var rate=0;
    for(var i=0,il=rates.length;i<il;i++){
        if(rates[i]['currency']==currency){
            rate=Number(rates[i]['rate']);
            break;
        }
    }
    var amount=0;
    var buttons=        document.getElementsByName('button');
    for(var i=0,il=buttons.length;i<il;i++){
        if(buttons[i].checked){
            amount=Number(buttons[i].value);
            break;
        }
    }
    document.getElementById('result').innerHTML=        amount*rate;
}

а также изменить

<select name="currencies" onchange="updateResult()" id='currencylist' value="GO">
0
$('select[name="currencies"], input[type="radio"][name="button"]').on('change', function()
{
    // your math calculation to update the div
    $('#result').html('Selected currency: ' + $('select[name="currencies"] option:selected').text() + ' / Price or "button": ' + $('input[type="radio"][name="button"]:checked').val());
});

Код должен работать, но не проверен ^^

Ещё вопросы

Сообщество Overcoder
Наверх
Меню