Занесение массива в .val()
Добрый день, я новичок сразу извиняюсь за глупый вопрос, пытался найти в инете похожие примеры, но безуспешно.
есть конструкция
<select id="operation">
<option>текст</option>
<option>текст</option>
<option>текст</option>
<option>текст</option>
<option>текст</option>
</select>
мне нужно присвоить им разные значение value делаю через jquery
$('#operation option').val(50);
а как присвоить им разные значения к примеру первому option value="50, второму option value="570" и т.д. я извратился и сделал так в html присвоил каждому option свой id <select id="operation"> <option id="operation1">текст</option> <option id="operation2">текст</option> <option id="operation3">текст</option> <option id="operation4">текст</option> <option id="operation5">текст</option> <option id="operation6">текст</option> </select> и через jquery присвоил каждому option значение.
$('#operation1').val(4200);
$('#operation2').val(7800);
$('#operation3').val(10900);
$('#operation4').val(15700);
$('#operation5').val(18100);
$('#operation6').val(24200);
код работает, но выглядит ужасно =( |
Nevea, делая
$('#operation option');
Ты получаешь целую коллекцию элементов... По ним можно "пройтись" и присвоить каждому нужное значение... |
я это понимаю =)
сделал в общем через цикл:
var opereation_val = [7200,10300,14500,19400,23000,29000]
for(var i=0;i<opereation_val.length;i++)
{ $(operation[i]).val(opereation_val[i]); }
|
А нафиг все это? Как генерируются опшны? Почему бы тутже не проставлять value?
|
не очень понял вашу мысль?
есть option в зависимости от условия у них разные value, вот мне их нужно заполнить значениями |
Что значит "есть option". Его же кто-то как-то создал? Опшны генерятся или пишутся вручную? И какое же это условие? Оно только на клиенте определяется?
|
ну в общем опишу тогда всю ситуацию, есть калькулятор
в калькуляторе есть радиокнопки, в зависимости от нажатой радиокнопки нужно сгенерировать значения value для option.option написаны руками. вот полный код который сейчас.Код работает. Но я не уверен правильно ли он написан <div class="calculator" onchange="calc()"> Тариф:<br/> <label><input type="radio" name="radio_tariff" id="tariff1"/>ОСН</label><br/> <label><input type="radio" name="radio_tariff" id="tariff2"/> УСН (6%)</label><br/> <label><input type="radio" name="radio_tariff" id="tariff3"/>УСН (15%)</label><br/> <br/> Операции<br/> <select id="operation"> <option >текст</option> <option >текст</option> <option >текст</option> <option >текст</option> <option >текст</option> <option>текст</option> </select> <br/> </div> <span id="result">0</span> Код расчета и вывода цены в зависимости от выбранного тарифа
$(document).ready(calc())
function calc(){
if ($('#tariff1').prop('checked')==true){
var opereation_val = [7200,10300,14500,19400,23000,29000];
for(var i=0;i<opereation_val.length;i++) {
$(operation[i]).val(opereation_val[i]);
}
price = parseInt($("select#operation").val());
$("#result").text(parseInt(price));
}
else if($('#tariff2').prop('checked')==true){
var opereation_val = [4200,7800,10900,15700,18100,24200];
for(var i=0;i<opereation_val.length;i++) {
$(operation[i]).val(opereation_val[i]);
}
price = parseInt($("select#operation").val());
$("#result").text(parseInt(price));
}
else if($('#tariff3').prop('checked')==true){
var opereation_val = [5400,9000,12100,16900,20500,26600];
for(var i=0;i<opereation_val.length;i++) {
$(operation[i]).val(opereation_val[i]);
}
price = parseInt($("select#operation").val());
$("#result").text(parseInt(price));
}
}
|
Цитата:
|
<!DOCTYPE html>
<form class="calculator" id="calculator">
Тариф:<br/>
<label><input type="radio" name="radio_tariff" value="tariff1" checked=""/>ОСН</label><br/>
<label><input type="radio" name="radio_tariff" value="tariff2"/> УСН (6%)</label><br/>
<label><input type="radio" name="radio_tariff" value="tariff3"/>УСН (15%)</label><br/>
<br/>
Операции<br/>
<select name="operation">
<option>текст</option>
<option>текст</option>
<option>текст</option>
<option>текст</option>
<option>текст</option>
<option>текст</option>
</select>
<br/>
<output name="result">0</output>
<script>
(function() {
var tariffs = {
tariff1: [7200,10300,14500,19400,23000,29000],
tariff2: [4200,7800,10900,15700,18100,24200],
tariff3: [5400,9000,12100,16900,20500,26600]
};
var form = document.querySelector('#calculator');
var output = form.querySelector('[name="result"]'); // form.result
form.onchange = function() {
var selectedTariff = form.querySelector('input[name="radio_tariff"]:checked').value;
output.innerHTML = tariffs[selectedTariff][form.operation.selectedIndex];
};
// initialization
form.onchange();
})()
</script>
</form>
|
спасибо большое, разобрался
|
| Часовой пояс GMT +3, время: 11:13. |