Вытащить переменную из 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, время: 09:09. |