08.04.2017, 18:39
|
Интересующийся
|
|
Регистрация: 08.04.2017
Сообщений: 11
|
|
проблемы в калькуляции 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);
});
});
|
|
08.04.2017, 19:05
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
$('input').on('input', function(){
$('a8').on('click', function()....
})
то-есть вполне нормально? И что такое 'a8'?
|
|
08.04.2017, 19:14
|
Интересующийся
|
|
Регистрация: 08.04.2017
Сообщений: 11
|
|
a8 - id в input
|
|
08.04.2017, 19:15
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
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));
});
});
|
|
08.04.2017, 19:15
|
Интересующийся
|
|
Регистрация: 08.04.2017
Сообщений: 11
|
|
ого только заметил знак # не поставил ....ну все равно
не работает
|
|
08.04.2017, 19:18
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Andree007,
Перенесите значения 7.5, 32, ... в атрибуты полей, и по событию обрабатывайте их коллекцию проходом в цикле, без повторения портянок
a1 = $("#a1").val() * 7.5;
и кучи переменных.
|
|
08.04.2017, 19:19
|
Интересующийся
|
|
Регистрация: 08.04.2017
Сообщений: 11
|
|
оу ..... спасибо большое все работает ))))) интересное решение, если можно как профану объяснить почему z *=1.2
|
|
08.04.2017, 19:21
|
Интересующийся
|
|
Регистрация: 08.04.2017
Сообщений: 11
|
|
Сообщение от laimas
|
Andree007,
Перенесите значения 7.5, 32, ... в атрибуты полей, и по событию обрабатывайте их коллекцию проходом в цикле, без повторения портянок
a1 = $("#a1").val() * 7.5;
и кучи переменных.
|
можно по подробней не совсем вас понял
|
|
08.04.2017, 19:29
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,109
|
|
Сообщение от Andree007
|
почему z *=1.2
|
120%
(z/100)*120 == z*1.2
|
|
08.04.2017, 19:31
|
Профессор
|
|
Регистрация: 14.01.2015
Сообщений: 12,990
|
|
Константы, на которые производится умножение, можно содержать в атрибутах самих полей. Во-первых не потребуется менять скрипт, если они вдруг изменяться, а во вторых вот такого
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.
По событию ввода получайте коллекцию полей ввода и проходом в цикле получайте значение текущего поля, константу из атрибута, умножаем и т.д.
|
|
|
|