в некоторых случаях * вы можете сначала return false
вместо e.preventDefault()
, затем, когда вы хотите восстановить значение по умолчанию return true
.
* То есть, когда вы не возражаете против всплытия событий, и вы не используете e.stopPropagation()
вместе с e.preventDefault()
Также см. аналогичный вопрос (также в переполнении стека)
или в случае флажка у вас может быть что-то вроде:
$(element).toggle(function(){
$(":checkbox").attr('disabled', true);
},
function(){
$(":checkbox").removeAttr('disabled');
})