Javascript.RU

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

Автоматический вывод суммы значений в input-ах
Здравствуйте, нужна помощь, Нашел нужный js-скрипт, который выводит сумму значений value в input, но хотелось бы что бы он выводил результат не по нажатию на кнопку, а автоматически.
При этом остальной функционал скрипта нужно оставить неизменным!

Скрипт который нужно переделать:
<html>
<head>
<script language="JavaScript">
function sums()
{
 sum=0;
 for(i=1;i<13;i++)
 { 
  var elem=document.getElementById("r"+i);
  if(elem.checked)sum=sum+parseInt(elem.value);
 }
 document.formText.sumOut.value=sum;
}
</script>
</head>
<body>
<form name="formText">
<input type="radio" name="aa" id="r1" value="12">text 1
<input type="radio" name="aa" id="r2" value="24">text 2
<input type="radio" name="aa" id="r3" value="32">text 3
<input type="radio" name="aa" id="r4" value="43">text 4
<input type="radio" name="aa" id="r5" value="45">text 5<BR><BR>
<input type="radio" name="bb" id="r6" value="+24">text 16
<input type="radio" name="bb" id="r7" value="+10">text 17
<input type="radio" name="bb" id="r8" value="+7">text 18<BR><BR>
<input type="radio" name="сс" id="r9" value="+13">text 17
<input type="radio" name="сс" id="r10" value="+9">text 17
<input type="radio" name="сс" id="r11" value="+54">text 17
<input type="radio" name="сс" id="r12" value="+30">text 17
<input type="button" onclick="sums()" value="Подсчитать">
<br>Сумма:<br>
<input type="text" name="sumOut" disabled="false" value="">
</form>
</body>
</html>
Ответить с цитированием
  #2 (permalink)  
Старый 17.04.2016, 00:43
Профессор
Отправить личное сообщение для Decode Посмотреть профиль Найти все сообщения от Decode
 
Регистрация: 31.01.2015
Сообщений: 576

document.formText.onchange = function(e) {
  if (!e.target.tagName.type && e.target.tagName.type == 'radio')
    return;

  var sum = 0;

  [].slice.call( this.querySelectorAll('input[type=radio]') ).forEach(function(item) {
    item.checked && (sum += +item.value);
  });

  this.elements.sumOut.value = sum;
};
Ответить с цитированием
  #3 (permalink)  
Старый 17.04.2016, 01:01
Аватар для Vlasenko Fedor
Профессор
Отправить личное сообщение для Vlasenko Fedor Посмотреть профиль Найти все сообщения от Vlasenko Fedor
 
Регистрация: 13.03.2013
Сообщений: 1,572

<form name="formText">
  <input type="radio" name="aa" id="r1" value="12">text 1
  <input type="radio" name="aa" id="r2" value="24">text 2
  <input type="radio" name="aa" id="r3" value="32">text 3
  <input type="radio" name="aa" id="r4" value="43">text 4
  <input type="radio" name="aa" id="r5" value="45">text 5
  <BR/>
  <BR/>
  <input type="radio" name="bb" id="r6" value="24">text 16
  <input type="radio" name="bb" id="r7" value="10">text 17
  <input type="radio" name="bb" id="r8" value="7">text 18
  <BR/>
  <BR/>
  <input type="radio" name="сс" id="r9" value="13">text 17
  <input type="radio" name="сс" id="r10" value="9">text 17
  <input type="radio" name="сс" id="r11" value="54">text 17
  <input type="radio" name="сс" id="r12" value="30">text 17
  <input type="button" value="Подсчитать">
  <br>Сумма:
  <br>
  <input type="text" name="sumOut" disabled="false" value="">
</form>

<script>
window.onload = function() {
  document.forms.formText.onclick = function() {
    var sum = 0,
      els = this.querySelectorAll('input[type="radio"]:checked');
    for (var i = 0; i < els.length; i++) {
      sum += +els[i].value;
    }
    this.sumOut.value = sum;
  };
};
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 17.04.2016, 09:50
Новичок на форуме
Отправить личное сообщение для FALKOR Посмотреть профиль Найти все сообщения от FALKOR
 
Регистрация: 16.04.2016
Сообщений: 5

Спасибо, это почти то что я хотел, единственное, в старом скрипте выводилась сумма только цифирных значений, даже при наличии в value какого либо текста (если текст после подсчитываемых чисел), можно ли это реализовать как-то в ваших скриптах?
Что бы было понятней и больше никого не мучить:
Нужно отправлять value импутов в которых суммируемые числа (цена), и кратное название товара (текст)
Пример:
<input type="radio" name="cpu" id="r3" value="41 $ i7-3770">

То есть нужно что бы даже при таком value число 41 подсчитывалось.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
"Динамическое" получение значений input kazakn Events/DOM/Window 5 07.08.2015 11:15
Отправка по Ajax массива значений поля input hrundel jQuery 10 25.04.2014 22:13
Как передать в переменную массив значений из INPUT тега kapustnik Общие вопросы Javascript 3 19.04.2013 10:46
При добавлении DOCTYPE "плывут" размеры input type=text Demath (X)HTML/CSS 4 08.07.2012 19:27
Cчётчик значений value в элементе формы input type="text"? Surlik jQuery 8 04.04.2012 04:49