Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.08.2011, 21:58
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

Как заставить итоговую цифру...
Как заставить итоговую цифру округляться до сотых?

<script type="text/javascript">
<!--
function addIt() {
a=0.115;
var value1 = parseFloat(document.getElementById("inputA").value .replace(/,/, '.')) || 0;
// <---
// <---
document.getElementById("output").value = value1*a;
}
// -->
</script>

<h4>Объем воды в различных трубопроводах</h4>
Трубопровод металлопластиковый
<table border="1" class="forms">
<tr>
<td><strong>Диаметр трубопровода</strong></td>
<td><strong>Метраж (м.)</strong></td>
<td><strong>Объем (л.)</strong></td>
</tr>
<td><strong>16</strong></td>
<td>
<input type="text" name="inputA" id="inputA" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="output" id="output" size="8" />
</td>
</tr>
</table>
Ответить с цитированием
  #2 (permalink)  
Старый 12.08.2011, 22:00
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

блин, может уже научимся код в специальные теги обрамлять... в этой каше честно говоря сложно разобраться.
Ответить с цитированием
  #3 (permalink)  
Старый 12.08.2011, 22:01
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

document.getElementById("output").value = parseFloat(value1*a).toFixed(2);
Ответить с цитированием
  #4 (permalink)  
Старый 12.08.2011, 22:07
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

ещё вопрос, в данной таблице одна строка расчитывает диаметр 16, но у меня ещё и другие диаметры будут (20,26,32), как должна выглядеть функция?... у меня сейчас создано несколько диаметров, но считает он почему то в последнюю ячейку
Ответить с цитированием
  #5 (permalink)  
Старый 12.08.2011, 22:54
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

Так что же я делаю не так?
для каждой строки отдельную функцию что ли писать?
Подскажите плиз

function addIt() {  
  a=0.115;
  b=0.200; 
  c=0.315;
  d=0.530;
  var value1 = parseFloat(document.getElementById("inputA").value.replace(/,/, '.')) || 0;
 // <---  
 // <---  
 document.getElementById("outputA").value = value1*a;
 document.getElementById("outputA").value = parseFloat(value1*a).toFixed(2);
  document.getElementById("outputB").value = value1*b;
 document.getElementById("outputB").value = parseFloat(value1*b).toFixed(2);
  document.getElementById("outputC").value = value1*c;
 document.getElementById("outputC").value = parseFloat(value1*c).toFixed(2);
  document.getElementById("outputD").value = value1*d;
 document.getElementById("outputD").value = parseFloat(value1*d).toFixed(2);
}  
 // -->

<h4>Объем воды в различных трубопроводах</h4>
Трубопровод металлопластиковый
<table border="1" class="forms">
<tr>
<td><strong>Диаметр трубопровода</strong></td>
<td><strong>Метраж (м.)</strong></td>
<td><strong>Объем (л.)</strong></td>
</tr>
<td><strong>16</strong></td>
<td>
<input type="text" name="inputA" id="inputA" value="0" size="10" onKeyUp="addIt(1);"/>
</td>
<td>
<input type="text" name="outputA" id="outputA" size="8" />
</td>
</tr>
<tr>
<td><strong>20</strong></td>
<td>
<input type="text" name="inputB" id="inputB" value="0" size="10" onKeyUp="addIt(2);"/>
</td>
<td>
<input type="text" name="outputB" id="outputB" size="8" />
</td>
</tr>
<tr>
<td><strong>26</strong></td>
<td>
<input type="text" name="inputC" id="inputC" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputC" id="outputC" size="8" />
</td>
</tr>
<tr>
<td><strong>32</strong></td>
<td>
<input type="text" name="inputD" id="inputD" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputD" id="outputD" size="8" />
</td>
</tr>
</table>
Ответить с цитированием
  #6 (permalink)  
Старый 12.08.2011, 22:59
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

нашел решение... Проблема только в том что при вводе в любую строку кол-во метров высчитывает правильно но появляются ранее отсутствующие нули, как бы не эстетично смотрится, как сделать так чтобы нули в других ячейках не появлялись?
<!--  
  function addIt() {  
  a=0.115;
  b=0.200; 
  c=0.315;
  d=0.530;
  var value1 = parseFloat(document.getElementById("inputA").value.replace(/,/, '.')) || 0;
    var value2 = parseFloat(document.getElementById("inputB").value.replace(/,/, '.')) || 0;
	  var value3 = parseFloat(document.getElementById("inputC").value.replace(/,/, '.')) || 0;
	    var value4 = parseFloat(document.getElementById("inputD").value.replace(/,/, '.')) || 0;
 // <---  
 // <---  
 document.getElementById("outputA").value = value1*a;
 document.getElementById("outputA").value = parseFloat(value1*a).toFixed(2);
  document.getElementById("outputB").value = value2*b;
 document.getElementById("outputB").value = parseFloat(value2*b).toFixed(2);
  document.getElementById("outputC").value = value3*c;
 document.getElementById("outputC").value = parseFloat(value3*c).toFixed(2);
  document.getElementById("outputD").value = value4*d;
 document.getElementById("outputD").value = parseFloat(value4*d).toFixed(2);
}  
 // -->


<h4>Объем воды в различных трубопроводах</h4>
Трубопровод металлопластиковый
<table border="1" class="forms">
<tr>
<td><strong>Диаметр трубопровода</strong></td>
<td><strong>Метраж (м.)</strong></td>
<td><strong>Объем (л.)</strong></td>
</tr>
<td><strong>16</strong></td>
<td>
<input type="text" name="inputA" id="inputA" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputA" id="outputA" size="8" />
</td>
</tr>
<tr>
<td><strong>20</strong></td>
<td>
<input type="text" name="inputB" id="inputB" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputB" id="outputB" size="8" />
</td>
</tr>
<tr>
<td><strong>26</strong></td>
<td>
<input type="text" name="inputC" id="inputC" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputC" id="outputC" size="8" />
</td>
</tr>
<tr>
<td><strong>32</strong></td>
<td>
<input type="text" name="inputD" id="inputD" value="0" size="10" onKeyUp="addIt();"/>
</td>
<td>
<input type="text" name="outputD" id="outputD" size="8" />
</td>
</tr>
</table>
Ответить с цитированием
  #7 (permalink)  
Старый 13.08.2011, 08:26
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

доброе утро всем....
подскажите как от нулей избавиться (при расчете в одной строке в другие ячейки автоматом нули проставляются) в вышеуказанном коде
Ответить с цитированием
  #8 (permalink)  
Старый 13.08.2011, 08:52
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

<script type="text/javascript">
  function addIt( type ) {
    var data = {
      A: 0.115,
      B: 0.200,
      C: 0.315,
      D: 0.530
    }

    var value = parseFloat(document.getElementById("input" + type).value.replace(/,/, '.')) || 0;
    document.getElementById("output" + type).value = parseFloat(value * data[ type ]).toFixed(2);
  }
</script>
<h4>Объем воды в различных трубопроводах</h4>
Трубопровод металлопластиковый
<table border="1" class="forms">
<tr>
  <td><strong>Диаметр трубопровода</strong></td>
  <td><strong>Метраж (м.)</strong></td>
  <td><strong>Объем (л.)</strong></td>
</tr>
  <td><strong>16</strong></td>
  <td>
    <input type="text" name="inputA" id="inputA" value="0" size="10" onKeyUp="addIt('A');"/>
  </td>
  <td>
    <input type="text" name="outputA" id="outputA" size="8" />
  </td>
</tr>
<tr>
  <td><strong>20</strong></td>
  <td>
    <input type="text" name="inputB" id="inputB" value="0" size="10" onKeyUp="addIt('B');"/>
  </td>
  <td>
    <input type="text" name="outputB" id="outputB" size="8" />
  </td>
</tr>
<tr>
  <td><strong>26</strong></td>
  <td>
    <input type="text" name="inputC" id="inputC" value="0" size="10" onKeyUp="addIt('C');"/>
  </td>
  <td>
    <input type="text" name="outputC" id="outputC" size="8" />
  </td>
</tr>
<tr>
  <td><strong>32</strong></td>
  <td>
    <input type="text" name="inputD" id="inputD" value="0" size="10" onKeyUp="addIt('D');"/>
  </td>
  <td>
    <input type="text" name="outputD" id="outputD" size="8" />
  </td>
</tr>
</table>
Ответить с цитированием
  #9 (permalink)  
Старый 13.08.2011, 10:43
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

вставляю всё что у вас написано на страницу, почему то не считает хотя в вашем примере все считает.. непонятно
Ответить с цитированием
  #10 (permalink)  
Старый 13.08.2011, 11:03
Профессор
Отправить личное сообщение для sergiocharm Посмотреть профиль Найти все сообщения от sergiocharm
 
Регистрация: 12.08.2011
Сообщений: 176

какой то конфликт с Wordpress. Я скрипт и код вставляю во вкладку HTML, может здесь что то не так делаю?
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как заставить функцию при запуске увидеть ГЛОБАЛЬНУЮ переменную? возжаждавший Элементы интерфейса 8 23.02.2017 01:27
Как узнать, присутствует ли в окне полоса прокрутки или нет? возжаждавший Элементы интерфейса 6 12.03.2010 23:00
Как сделать электронный каталог продукции? natarius Серверные языки и технологии 6 24.05.2009 20:56
Как заставить this в обработчике события указывать на объект? Dmitryk Events/DOM/Window 3 16.03.2009 08:45
Как заставить работать оперу и мозилу? SDone AJAX и COMET 6 25.02.2009 16:05