Отмена действия при повторном клике на 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));
}
|
Lutsk,
лучше бы конечно без Цитата:
Цитата:
<!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>
|
Вот так вроде работает. Но может есть более правильное решение?
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));
}
}
|
Цитата:
|
| Часовой пояс GMT +3, время: 07:24. |