Показать сообщение отдельно
  #5 (permalink)  
Старый 08.03.2012, 10:42
Аватар для rashid86
Интересующийся
Отправить личное сообщение для rashid86 Посмотреть профиль Найти все сообщения от rashid86
 
Регистрация: 07.03.2010
Сообщений: 16

Кстати, с праздником всем женщинам!
Конечно, отличный вариант дал Наш сенсей "nasqad"
тоесть прописать вовсех инпутах именно одинаковый ID, это очень упрощает работу и очень удобно, но он что то не работает
Я не мастер в JavaScript, но вышла синтактическая ошибка в скрипте на строке "summary += ($.isNumeric(temp) && $.isNumeric(this.value) ? temp*this.value : 0;" и заметил эту ошибку сам Dreamweawer CS5, да и после этой строки исходные коды как бы игнорируют...//
HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
</head>
<body>
<table>
  <tr>
    <td width="319">Выезд проектировщика-оценщика</td>
    <td align="center"><input data-price="200" type="checkbox" id="calculation" /></td>
  </tr>
</table>
<table class="table" border="1">
  <tr>
    <td width="319">Низкое давление - до 5 кПа (0,05 кгс/см2)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform" id="calculation" /></td>
  </tr>
  <tr>
    <td>Среднее давление - до 0,3 мПа (3 кгс/см2)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform" id="calculation" /></td>
  </tr>
  <tr>
    <td>Высокое давление - до 0,6 мПа (6 кгс/см2)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform" id="calculation" /></td>
  </tr>
  <tr>
    <td>Высокое давление - до 1,2 мПа (12 кгс/см2)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform" id="calculation" /></td>
  </tr>
</table>
<table>
  <tr>
    <td width="319">Рабочий проект</td>
    <td align="center"><input data-price="200" type="checkbox" id="calculation" /></td>
  </tr>
</table>
<table>
  <tr>
    <td width="319">Получение тех.условие</td>
    <td align="center"><input data-price="200" type="checkbox" id="calculation" /></td>
  </tr>
</table>
<table>
  <tr>
    <td width="319">Исполнительная Техническая Документация</td>
    <td><input data-price="200" type="checkbox" id="calculation" /></td>
  </tr>
  <tr>
    <td width="246">Прокол через дорогу</td>
    <td><input data-price="200" type="checkbox" id="calculation" /></td>
  </tr>
  <tr>
    <td>Сталь O 159</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  <tr>
    <td>Сталь O 57</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  <tr>
    <td>Сталь O 20</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  <tr>
    <td>Сталь O 15</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  <tr>
    <td>Полиэтилен O 32</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  <tr>
    <td>Выход труб из земли</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Котел</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Газовая плита</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Печь</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Водонагреватель (бойлер)</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Проход через стену</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>штук</td>
  </tr>
  <tr>
    <td>Длина копки траншеи (м)</td>
    <td align="center"><input data-price="200" id="calculation" class="numfield" maxlength="5" value="0" /></td>
    <td>метров</td>
  </tr>
  </id>
</table>
<table class="table" border="1">
  <tr>
    <td width="319">Счетчик G4 (0,04 м3/ч до 6,0 м3/ч)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform2" id="calculation" /></td>
  </tr>
  <tr>
    <td>Счетчик G6 (6,0 м3/ч до 10,0 м3/ч)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform2" id="calculation" /></td>
  </tr>
  <tr>
    <td>Счетчик G10 (10,0 м3/ч до 16,0 м3/ч)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform2" id="calculation" /></td>
  </tr>
  <tr>
    <td>Счетчик G16 (16,0 м3/ч до 25,0 м3/ч)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform2" id="calculation" /></td>
  </tr>
  <tr>
    <td>Счетчик G25 (25,0 м3/ч до 40,0 м3/ч)</td>
    <td align="center"><input data-price="200" type="checkbox" class="platform2" id="calculation" /></td>
  </tr>
  </id>
</table>
<table class="table">
  <tr>
    <td width="319">ИТОГО:</td>
    <td id="calculation">0</td>
    <td>тенге</td>
  </tr>
</table>
</body>
</html>

В этот HTML исходник вдул этот код javascript:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.0/jquery.min.js"></script>
<script>
var elements = $('#calculation > input').change(function() {
	var summary = 0;
	elements.each(function() {
		var temp, tag = this.tagName;
		if(tag = 'select') {
			temp = $(':selected', this).attr('data-price');
			summary += $.isNumeric(temp) ? +temp : 0;
		} else if(tag = 'checkbox') {
			temp = $(this).is(':checked') && $(this).attr('data-price');
			summary += $.isNumeric(temp) ? +temp : 0;
		} else if(tag = 'input') {
			temp = this.value && +this.value > 0 && $(this).attr('data-price');
			summary += ($.isNumeric(temp) && $.isNumeric(this.value) ? temp*this.value : 0;
		}
//"select" == tag ? (temp = $(":selected", this).attr("data-price"), $.isNumeric(temp)) : "checkbox" == tag ? (temp = $(this).is(":checked") && $(this).attr("data-price"), $.isNumeric(temp)) : "input" == tag && (temp = this.value && 0 < +this.value && $(this).attr("data-price"), $.isNumeric(temp) && $.isNumeric(this.value));
	});
	alert(summary);
})
</script>

И если получиться, то я сомневаюсь, что будет работать 3 тип расчета: "многострочный список "несколько вариантов из данной услуги"" так как все ID одинаковые...
Может кто нибудь сможет разобраться в яваскрипте? если получиться, то я вставлю всё на сайт менять буду только HTML код.

Последний раз редактировалось rashid86, 08.03.2012 в 10:52. Причина: пояснил чуть чуть
Ответить с цитированием