onBlur
- это когда вы отошли от объекта без необходимости его изменения.
onChange
вызывается только после того, как вы отошли от объекта, для которого вы изменили значение.
Один из них должен соответствовать вашим потребностям. Если нет, различные события нажатия клавиш будут срабатывать при каждом изменении символа.
Если это не происходит, то регулярное обновление одной переменной javascript может не потребовать столько вычислительной мощности, как вы говорите, ЕСЛИ ваш селектор вызывает нечетное поведение DOM.
Попробуйте это: сделать ссылку на элемент по id и сохранить эту ссылку в переменной js. Обновление и изменение другой переменной с помощью этой ссылки является тривиальной операцией.