Показать сообщение отдельно
  #2 (permalink)  
Старый 23.11.2018, 11:06
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

SolomonRei,
Интересно, зачем вы выворачиваете логику работы checkbox наизнанку?
$('#presents').on('click', function() {
    	alert(23);
    	var information = Number($('#calc-f-sum').val());
    	if($('#presents').prop('checked')) {
    		 $('#presents').prop('checked', false);
    		if(information != ' ') {
				discount = information
    		}
    	}else {
    		 $('#presents').prop("checked", true);
    		if(information != ' ') {
    			var discount_difference = Number((information * 2)/ 100);
				discount = Math.round(Number(information + discount_difference));
    		}
    	}
    });

Если не в обработчике клика, то checked нормально меняется.
<label><input type="checkbox" id="presents" value="1" name="presents" checked="true" />2%</label>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<script>
$('#presents').prop('checked', false);
</script>

Корректнее использовать .attr(), но и с prop работает.
Ответить с цитированием