Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.05.2015, 16:11
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

Сумма checkbox + type="text"
Добрый день.
Подскажите пожалуйста как мне посчитать сумму в <output> при выборе чекбоксов?
И еще как сделать проверку на включение type="checkbox", чтобы если включен, то в сложение сумм учитывать type="text" ?
<table border="1" width="100%" bgcolor="#FFFF00">
	<tr><form name="Sum">
		<td colspan="2" align="center"><b><font size="4">Итого за  оборудование = <output id="rezultat" name="rezultat">0</output> руб.</font></b></td>
	</tr>
	<tr>
		<td><label><input type="checkbox" name="vibor" value="15200">Прибор1 = 15200 руб.</label>
			<label><p><input type="checkbox" name="vibor" value="3500">Прибор2 = 3500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="1500">Прибор3 = 1500 руб.</p></label>
		</td>
		<td><label><input type="checkbox" name="vibor" value="15200">Прибор4 = 15200 руб.</label>
			<label><p><input type="checkbox" name="vibor" value="3500">Прибор5 = 3500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="1500">Прибор6 = 1500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="ON">Дополнительно:&nbsp; <input type="text" name="vibor2" size="20">руб.</p></label>
		</td></form>
	</tr>
</table>


Скрипт почему-то не работает...
<script>
var s = document.forms.Sum,
    d = s.querySelectorAll('input[type="checkbox"]:not([value]), input[type="checkbox"][value=""]');
  for (var i = 0; i < d.length; i++) // чтобы не было написано NaN, убираем в disabled пункты, где не прописаны значения
    d[i].disabled = true;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll('[type="checkbox"]'),
      itog = 0;
  for(var j=0; j<n.length; j++)
    n[j].checked ? itog += parseFloat(n[j].value) : itog;
    document.getElementById('rezultat').innerHTML = itog;
}
</script>
Ответить с цитированием
  #2 (permalink)  
Старый 22.05.2015, 16:40
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

kristow,
нельзя форму резать строками!!!
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
</head>

<body>
<form name="Sum">
<table border="1" width="100%" bgcolor="#FFFF00">
	<tr>
		<td colspan="2" align="center"><b><font size="4">Итого за  оборудование = <output id="rezultat" name="rezultat">0</output> руб.</font></b></td>
	</tr>
	<tr>
		<td><label><input type="checkbox" name="vibor" value="15200">Прибор1 = 15200 руб.</label>
			<label><p><input type="checkbox" name="vibor" value="3500">Прибор2 = 3500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="1500">Прибор3 = 1500 руб.</p></label>
		</td>
		<td><label><input type="checkbox" name="vibor" value="15200">Прибор4 = 15200 руб.</label>
			<label><p><input type="checkbox" name="vibor" value="3500">Прибор5 = 3500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="1500">Прибор6 = 1500 руб.</p></label>
			<label><p><input type="checkbox" name="vibor" value="ON">Дополнительно:&nbsp; <input type="text" name="vibor2" size="20">руб.</p></label>
		</td>
	</tr>
</table>
</form>
<script>
var s = document.forms.Sum,
    d = s.querySelectorAll('input[type="checkbox"]:not([value]), input[type="checkbox"][value=""]');
  for (var i = 0; i < d.length; i++) // чтобы не было написано NaN, убираем в disabled пункты, где не прописаны значения
    d[i].disabled = true;
s.onchange = function() { // начало работы функции сложения
  var n = s.querySelectorAll('[type="checkbox"]'),
      itog = 0;
  for(var j=0; j<n.length; j++)
    n[j].checked && (itog += +n[j].value || +s.vibor2.value || 0);
    document.getElementById('rezultat').innerHTML = itog;
}
</script>


</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 22.05.2015, 17:03
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

да, косяк, спасибо...
Ответить с цитированием
  #4 (permalink)  
Старый 22.05.2015, 17:15
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

Подскажите как можно сохранять выбранные значения?
т.е. я в таблицу mysql хочу сохранять в виде строки состояние чекбоксов, чтоб при загрузке страницы их же восстановить (включить нужные).
Работа с mysql через php, тут все работает.
А как методом javascript собрать значения включенных чекбоксов? И как из строки их же активировать при загрузке страницы?
Ответить с цитированием
  #5 (permalink)  
Старый 22.05.2015, 17:18
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

kristow,
не подскажу, ждите гуру.
Ответить с цитированием
  #6 (permalink)  
Старый 25.05.2015, 09:20
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

up
Ответить с цитированием
  #7 (permalink)  
Старый 25.05.2015, 09:21
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

Сообщение от kristow Посмотреть сообщение
Подскажите как можно сохранять выбранные значения?
т.е. я в таблицу mysql хочу сохранять в виде строки состояние чекбоксов, чтоб при загрузке страницы их же восстановить (включить нужные).
Работа с mysql через php, тут все работает.
А как методом javascript собрать значения включенных чекбоксов? И как из строки их же активировать при загрузке страницы?
up
Ответить с цитированием
  #8 (permalink)  
Старый 25.05.2015, 11:42
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,112

Сообщение от kristow
А как методом javascript собрать значения включенных чекбоксов? И как из строки их же активировать при загрузке страницы?
как сохранить ссылку на тэг по которому кликнул ?
Ответить с цитированием
  #9 (permalink)  
Старый 25.05.2015, 11:59
Аватар для kristow
Аспирант
Отправить личное сообщение для kristow Посмотреть профиль Найти все сообщения от kristow
 
Регистрация: 26.02.2015
Сообщений: 49

Спасибо, решение уже нашел.
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
checkbox Сумма Seralexv jQuery 6 04.03.2015 10:21
Некоректная сумма для checkbox new_guy Общие вопросы Javascript 3 25.09.2013 14:32
checkbox = checkbox Слейп jQuery 2 30.01.2013 15:24
jqgrid tree and checkbox gaz2003 jQuery 0 17.12.2011 15:59
Функция disable для нескольких checkbox allforweb Элементы интерфейса 4 19.12.2010 17:51