Revamp onBlur handling

* Always use input element