I can't explain exactly why it's happening this way, it's likely due to the way the event propagates up the dom, however, removing the delegation and using an event.target
check seems to work.
$(document).on("keydown", function(event) {
if ( event.which === 8 && !$(event.target).is("input") ) {
event.preventDefault();
}
});