Может хватит уже этих "плюсиков" и "черточек" возле инпутов? Есть же нормальный spinEdit в виде input type="number", где можно как свободно указать необходимое кол-во, так и наклацать мышкой, при этом в параметрах поля можно задать мин и макс значения, шаг и это все будет корректно обрабатывать браузер, а вам остается только при событии blur передать значение в функцию типа: updateItemCart(id, qty)
Вот интересно было бы на вас посмотреть, если бы вам в магазине с подобной реализацией корзины, понадобилось добавить в нее, например 1500 п/м кабеля, который продается от 1 м/п.
data-id="<?= $id?>" - я бы повесил на tr, как на главный контейнер позиции, и было бы проще искать дочерние элементы.
и убрать type="submit" со span-a, тогда и preventDefault не понадобится, да и формы то нет там никакой, а значит и код еще валиднее станет.