Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.04.2017, 18:39
Интересующийся
Отправить личное сообщение для Andree007 Посмотреть профиль Найти все сообщения от Andree007
 
Регистрация: 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);
});

});
Ответить с цитированием
  #2 (permalink)  
Старый 08.04.2017, 19:05
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

$('input').on('input', function(){
     $('a8').on('click', function()....
})


то-есть вполне нормально? И что такое 'a8'?
Ответить с цитированием
  #3 (permalink)  
Старый 08.04.2017, 19:14
Интересующийся
Отправить личное сообщение для Andree007 Посмотреть профиль Найти все сообщения от Andree007
 
Регистрация: 08.04.2017
Сообщений: 11

a8 - id в input
Ответить с цитированием
  #4 (permalink)  
Старый 08.04.2017, 19:15
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

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));
    });

});
Ответить с цитированием
  #5 (permalink)  
Старый 08.04.2017, 19:15
Интересующийся
Отправить личное сообщение для Andree007 Посмотреть профиль Найти все сообщения от Andree007
 
Регистрация: 08.04.2017
Сообщений: 11

ого только заметил знак # не поставил ....ну все равно
не работает
Ответить с цитированием
  #6 (permalink)  
Старый 08.04.2017, 19:18
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Andree007,
Перенесите значения 7.5, 32, ... в атрибуты полей, и по событию обрабатывайте их коллекцию проходом в цикле, без повторения портянок

a1 = $("#a1").val() * 7.5;

и кучи переменных.
Ответить с цитированием
  #7 (permalink)  
Старый 08.04.2017, 19:19
Интересующийся
Отправить личное сообщение для Andree007 Посмотреть профиль Найти все сообщения от Andree007
 
Регистрация: 08.04.2017
Сообщений: 11

оу ..... спасибо большое все работает ))))) интересное решение, если можно как профану объяснить почему z *=1.2
Ответить с цитированием
  #8 (permalink)  
Старый 08.04.2017, 19:21
Интересующийся
Отправить личное сообщение для Andree007 Посмотреть профиль Найти все сообщения от Andree007
 
Регистрация: 08.04.2017
Сообщений: 11

Сообщение от laimas Посмотреть сообщение
Andree007,
Перенесите значения 7.5, 32, ... в атрибуты полей, и по событию обрабатывайте их коллекцию проходом в цикле, без повторения портянок

a1 = $("#a1").val() * 7.5;

и кучи переменных.
можно по подробней не совсем вас понял
Ответить с цитированием
  #9 (permalink)  
Старый 08.04.2017, 19:29
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,105

Сообщение от Andree007
почему z *=1.2
120%
(z/100)*120 == z*1.2
Ответить с цитированием
  #10 (permalink)  
Старый 08.04.2017, 19:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 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.

По событию ввода получайте коллекцию полей ввода и проходом в цикле получайте значение текущего поля, константу из атрибута, умножаем и т.д.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблемы со слайдером. Shupamen Работа 1 15.12.2013 00:12
проблемы с PagingToolbar serg3091 ExtJS 4 26.06.2013 09:33
Проблемы при установке модулей node.js tadjik1 AJAX и COMET 1 18.03.2012 02:20
глюк форума Gvozd Сайт Javascript.ru 11 18.03.2009 14:37
Drug&Drop + всплывание события = проблемы =(( _NoName_ Events/DOM/Window 4 05.03.2009 17:47