Javascript.RU

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

Отмена действия при повторном клике на checkbox
Подскажите пожалуйста нубу, - как сделать чтоб при отметке чекбокса значение его value суммировалось со значением в #block, а со снятием галочки - вычиталось?
В таком виде только суммирует:
<div id="block">100</div>

<input id="option_1" type="checkbox" name="options[1]" value="200" onclick="setOption(this.value);" />
<input id="option_2" type="checkbox" name="options[2]" value="300" onclick="setOption(this.value);" />

function setOption(value){
	var data = $("#block").html();
	$("#block").html(parseInt(data)+parseInt(value));
}
Ответить с цитированием
  #2 (permalink)  
Старый 02.04.2016, 16:26
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,077

Lutsk,
лучше бы конечно без
Сообщение от Lutsk
onclick
и
Сообщение от Lutsk
var data = $("#block").html();
...
<!DOCTYPE HTML>

<html>

<head>
  <title>Untitled</title>
  <meta charset="utf-8">
   <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>
</head>

<body>
<div id="block">100</div>

<input id="option_1" type="checkbox" name="options[1]" value="200" onclick="setOption(this);" />
<input id="option_2" type="checkbox" name="options[2]" value="300" onclick="setOption(this);" />
<script>
function setOption(obj){
	var data = $("#block").html();
	$("#block").html(parseInt(data)+parseInt(obj.value)*(obj.checked ? 1 : -1));
}

</script>
</body>

</html>
Ответить с цитированием
  #3 (permalink)  
Старый 02.04.2016, 16:27
Аспирант
Отправить личное сообщение для Lutsk Посмотреть профиль Найти все сообщения от Lutsk
 
Регистрация: 24.06.2011
Сообщений: 53

Вот так вроде работает. Но может есть более правильное решение?
function setOption(id, value){
	var data = $("#block").html();
	if ($('#'+id).is(':checked')) {
		$("#block").html(parseInt(data) + parseInt(value));
	} else {
		$("#block").html(parseInt(data) - parseInt(value));
	}
}
Ответить с цитированием
  #4 (permalink)  
Старый 02.04.2016, 16:31
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Сообщение от рони
лучше бы конечно без
Сообщение от Lutsk
onclick
и
и id="option_1", и name="options[1]"...
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При клике ссылки, открыть DIV блок, и при клике ещё раз, закрыть его Simon Общие вопросы Javascript 59 28.05.2017 17:31
скрыть открыть тот или иной блок при клике на ссылке ufaclub jQuery 9 26.08.2014 00:14
Активация checkbox при нажатии на текст и изменение стиля у текста. ilyakor jQuery 2 10.06.2014 19:34
При клике на ссылку ничего не происходит gurg0n Элементы интерфейса 2 24.06.2013 11:11
Скролл вверх при клике ie6/7/8 dr_gluk jQuery 0 21.03.2012 11:12