Вытащить переменную из select и добавить в формулу
Здравствуйте!
Помогите пожалуйста разобраться. Имеется два типа приборов, они сдаются в аренду по кол-во дней. Срок делится на 4 части Для одного прибора 3-7 дней - 5500 т.р. (сумма 1 день) 8-14 дней - 4500 т.р. (сумма 1 день) 15-30 дней - 4000 т.р. (сумма 1 день) 31+ дней - 3500 т.р. (сумма 1 день) Для второго прибора 3-7 дней - 6000 т.р. (сумма 1 день) 8-14 дней - 5000 т.р. (сумма 1 день) 15-30 дней - 4500 т.р. (сумма 1 день) 31+ дней - 4000 т.р. (сумма 1 день) Расчет происходит следующим образом Из списка выбирается прибор и вводится кол-во дней. Вот код, который пытался написать самостоятельно
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
</style>
<script type="text/javascript">
function calc_comlect() {
var days3=+document.getElementById('days3').value // кол-во дней
var rtk_uhf=+document.getElementById('rtk_uhf').value
var rtk_gsm=+document.getElementById('rtk_gsm').value
if (days3==0) {rtk_uhf=0;}
else if (days3<=3) { rtk_uhf=6000;}
else if (days3<=7) { rtk_uhf=days3*6000;}
else if (days3<=14) { rtk_uhf=days3*5000;}
else if (days3<=30) { rtk_uhf=days3*4500;}
else if (days3>=31) { rtk_uhf=days3*4000;}
if (days3==0) {rtk_gsm=0;}
else if (days3<=3) { rtk_gsm=5500;}
else if (days3<=7) { rtk_gsm=days3*5500;}
else if (days3<=14) { rtk_gsm=days3*4500;}
else if (days3<=30) { rtk_gsm=days3*4000;}
else if (days3>=31) { rtk_gsm=days3*3500;}
document.getElementById('rtk_uhf').value=rtk_uhf
document.getElementById('rtk_gsm').value=rtk_gsm
document.getElementById('summ').value=selectId*days3 // сумма дни + комплект
}
function change() {
select = document.getElementById("selectId"); // Выбираем select по id
value = select.options[select.selectedIndex].value; // Значение value для выбранного option
}
var select, value;
</script>
</head>
<body>
<select size="1" id="selectId" onchange="change()">
<option value="rtk_uhf">UHF 35W</option>
<option value="rtk_gsm">GSM/GPRS</option>
</select>
<input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
<input type='text' id='summ' /> <!-- вывод суммы на экран -->
<input type="button" name="button" id="button" onClick="calc_comlect()" value="вычислить"
</body>
</html>
|
zoomx25,
<!DOCTYPE html>
<html>
<head><meta charset="utf-8">
<style type="text/css">
</style>
<script type="text/javascript">
function calc_comlect() {
var days3= +document.getElementById('days3').value; // кол-во дней
var gsm = document.getElementById('selectId').value == "rtk_gsm";
var sumDay = gsm ? [5500,4500,4000,3500] : [6000,5000,4500,4000];
var day = [3,7,14,30];
sumDay = day.reduce(function(a,b,i) {
return b <= days3 ? sumDay[i] : a
},0)
document.getElementById('summ').value=sumDay *days3 // сумма дни + комплект
}
</script>
</head>
<body>
<select size="1" id="selectId" onchange="calc_comlect()">
<option value="rtk_uhf">UHF 35W</option>
<option value="rtk_gsm">GSM/GPRS</option>
</select>
<input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
<input type='text' id='summ' /> <!-- вывод суммы на экран -->
<input type="button" name="button" id="button" onClick="calc_comlect()" value="вычислить">
</body>
</html>
|
Огромное спасибо!!!
|
Есть еще один нюанс, аренда от 3-х дней, т.е. 1 день или 2 дня будут стоить как три.
Я совсем салага в этом деле. Вот как проверялось в моем коде else if (days3<=3) { rtk_gsm=5500;} Если логическим путем сделать var sumDay = gsm ? [16500,16500,5500,4500,4000,3500] : [18000,18000,6000,5000,4500,4000]; var day = [1,2,3,7,14,30]; то не работает (((( надо что то еще вот сюда добавить
sumDay = day.reduce(function(a,b,i) {
return b <= days3 ? sumDay[i] : a },0)
|
zoomx25, добавить
var days3= +document.getElementById('days3').value; // кол-во дней
*!*
days3 < 3 && (days3 = 3);
*/!*
|
или так.
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
</style>
</head>
<body>
<select size="1" id="selectId" onchange="change()">
<option value="rtk_uhf">UHF 35W</option>
<option value="rtk_gsm">GSM/GPRS</option>
</select>
<input type="text" name="days3" id="days3" /> <!-- ввод кол-во дней -->
<input type="button" name="button" id="button" onclick="calc_comlect()" value="вычислить">
<input type='text' id='summ' value="" /> <!-- вывод суммы на экран -->
<script type="text/javascript">
function calc_comlect() {
var days3 = document.getElementById('days3').value;// кол-во дней
var value = document.getElementById('selectId').value; // Выбираем select по id
var bablo;
if (value == "rtk_uhf") {
if (days3==0) {bablo=0;}
else if (days3<=3) { bablo=18000;}
else if (days3<=7) { bablo=days3*6000;}
else if (days3<=14) { bablo=days3*5000;}
else if (days3<=30) { bablo=days3*4500;}
else { bablo=days3*4000;}
}
else if (value == "rtk_gsm") {
if (days3==0) {value=0;}
else if (days3<=3) { bablo=16500;}
else if (days3<=7) { bablo=days3*5500;}
else if (days3<=14) { bablo=days3*4500;}
else if (days3<=30) { bablo=days3*4000;}
else { bablo=days3*3500;}
}
document.getElementById('summ').value = bablo; // сумма дни + комплект
}
</script>
</body>
</html>
|
Цитата:
|
| Часовой пояс GMT +3, время: 06:48. |