Отмена действия при повторном клике на 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, время: 14:24. |