Я бы справился с этим, установив model.set({qty: _qty}, {silent: true})
, а затем обновив поля без ввода с помощью this.$
.
В качестве альтернативы тихой обработке: вместо прослушивания change
событий прослушивайте change:qty
и change:sellPrice
и используйте метод, который обновляет только тот HTML-код, который необходимо обновить в this.$
, а не повторно рендеринг объекта DOM и нарушение фокуса.
В любом случае, ваш комментарий о «выборочном обновлении» на скрипке, безусловно, правильный путь.
(this.$
- это основной хак для jQuery, который ограничивает все селекторы для поиска только в DOM элемента View. Элемент даже не нуждается в ID или классе; ему просто нужно существовать, а View поддерживает справиться с этим. Это невероятно полезно.)