Занесение массива в .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, время: 12:34. |