проблемы в калькуляции HELLP!!!
Ребят помогите... целый день парюсь с задачей которая выеденого яйца не стоит, голову всю сломал не знаю как checkbox - задать формулу нахождения процента от суммы элементов
вот собственно код <!DOCTYPE > <head> <title>Страница</title> <link rel="stylesheet" href="css/template.css" type="text/css" /> <script type="text/javascript" src="js/calculator.js"></script> </head> <body> <form method=post id="myform"> <table border="2" cellpadding="0" cellspacing="0" height="200" width="650" id="" > <tbody> <tr> <td valign="top" width="180">Сварка </td> <td valign="top" width="80">7,5 р / см</td> <td valign="top" width=""><INPUT TYPE="number" style="width:30px" VALUE="0" id="a1"></td> </tr> <tr> <td valign="top" width="180">Рез, зачистка реза, сборка</td> <td valign="top" width="80">32 р / шт</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a2"></td> <tr> <td valign="top" width="180">Зачистка шва</td> <td valign="top" width="80">2 р / см</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a3"></td> </tr> <tr> <td valign="top" width="180">Покраска, обезжиривание, грунт (лист)</td> <td valign="top" width="80">230 р / м.кв</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a4"></td> </tr> <tr> <td valign="top" width="180">Покраска, обезжиривание, грунт (профиль)</td> <td valign="top" width="80">30 р /м.п</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a5"></td> </tr> <tr> <td valign="top" width="180">Шпаклевка шва</td> <td valign="top" width="80">15 р / шт</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a6"></td> </tr> <tr> <td valign="top" width="180">Шлифовка шва </td> <td valign="top" width="80">36 р / шт</td> <td valign="top" width="80"><INPUT TYPE="number" style="width:30px" VALUE="0" id="a7"></td> </tr> <tr> <td valign="top" width="180">Монтаж на объекте</td> <td valign="top" width="80">20%</td> <td valign="top" width="80"><INPUT TYPE="CHECKBOX" id="a8"></td> </tr> <tr> <td valign="top" width="180">Дизайн</td> <td valign="top" width="80">30%</td> <td valign="top" width="80"><INPUT TYPE="CHECKBOX" id="a9"></td> </tr> <tr> <td valign="top" width="180">Выезд замерщика</td> <td valign="top" width="80">800р </td> <td valign="top" width="80"><INPUT TYPE="CHECKBOX" id="a10"></td> </tr> <tr> <td valign="top" width="280"><div id="rezz">итог</div></td> <td valign="top" width="50"> <INPUT NAME="r" SIZE="9" TYPE="text"></td> </tr> </tbody> </table> </form> </body> </html> $('document').ready(function(){ $('input').on('input',function(){ var a1,a2,a3,a4,a5,a6,a7; a1=$("#a1").val()*7.5; a2=32 *$("#a2").val(); a3=2 *$("#a3").val(); a4=230 *$("#a4").val(); a5=30 *$("#a5").val(); a6=15 *$("#a6").val(); a7=36 *$("#a7").val(); var c =$('a8').on('click', function(){ (a1+a2+a3+a4+a5+a6+a7)*20/100 }); var z z=a1+a2+a3+a4+a5+a6+a7+c; $('#rezz').html(z); }); }); |
$('input').on('input', function(){ $('a8').on('click', function().... }) то-есть вполне нормально? И что такое 'a8'? |
a8 - id в input
|
Andree007,
$(function() { $('input').on('input click', function() { var a1, a2, a3, a4, a5, a6, a7, z; a1 = $("#a1").val() * 7.5; a2 = 32 * $("#a2").val(); a3 = 2 * $("#a3").val(); a4 = 230 * $("#a4").val(); a5 = 30 * $("#a5").val(); a6 = 15 * $("#a6").val(); a7 = 36 * $("#a7").val(); z = a1 + a2 + a3 + a4 + a5 + a6 + a7; if ($('#a8').prop('checked')) z *= 1.2; $('#rezz').html(z.toFixed(2)); }); }); |
ого только заметил знак # не поставил ....ну все равно
не работает |
Andree007,
Перенесите значения 7.5, 32, ... в атрибуты полей, и по событию обрабатывайте их коллекцию проходом в цикле, без повторения портянок a1 = $("#a1").val() * 7.5; и кучи переменных. |
оу ..... спасибо большое все работает ))))) интересное решение, если можно как профану объяснить почему z *=1.2
|
Цитата:
|
Цитата:
(z/100)*120 == z*1.2 |
Константы, на которые производится умножение, можно содержать в атрибутах самих полей. Во-первых не потребуется менять скрипт, если они вдруг изменяться, а во вторых вот такого
a1=$("#a1").val()*7.5; a2=32 *$("#a2").val(); a3=2 *$("#a3").val(); a4=230 *$("#a4").val(); a5=30 *$("#a5").val(); a6=15 *$("#a6").val(); a7=36 *$("#a7").val(); совсем не нежно будет, как и кучи переменных a1,a2,a3,a4,a5,a6,a7. По событию ввода получайте коллекцию полей ввода и проходом в цикле получайте значение текущего поля, константу из атрибута, умножаем и т.д. |
Часовой пояс GMT +3, время: 12:19. |