а. После клика сразу отписываться
б. Завести переменную и делать что-то типа
if(!clicked) {
clicked = true;
var $price = $("#set1");
$price.val(parseInt($price.val()) + 400);
}
(вообще мой пример может быть достаточно не стабилен, тк я не уверен, как работает конкурентность в жс)
Но вообще хранить данные в разметке - это плохая практика. Представление должно зависеть от данных, а не наоборот.
Я так понял - это у вас некоторый калькулятор для стоимости покупки - советую в вашем случае создать некоторый класс, который будет реализовывать в себе логику просчёта стоимости, а потом отдельной функцией отрисовывать его состояние.
Это особенно удобно будет сделать на react или другом подобном фреймворке, который может реактивно перерисовывать html после изменения данных.