У меня есть два массива:
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>
Спасибо за помощь!
Предполагая, что вы меняете массив, как я сказал в комментарии:
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()))
}
})
Вы можете попробовать следующее:
$("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">
$('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());
});
Код должен работать, но не проверен ^^
{'USD':1, 'EUR':0.7....}