У поля типа number нужно обрабатывать событие onchange (также нужно учитывать, что в данное поле можно и непосредственно вводить). Расчет производить только если во всех списках есть выбор, какой смысл ноль показывать?
Но это не главное. Лучше все определить объектом получая данные из него по выбору в списках. А еще лучше прописать все зависимости в data атрибутах опций списков. Эти данные ведь сервером определяются, а инфляция ..., значит проще менять цены в самих списках при выводе формы, а не изменять в скриптах.
PS. О типе nember снимается, кнопка расчета это не оно.