Не отправляется post запрос через ajax с формы, пока не перезагружу страницу. Как починить?
Потому что, когда Вы грузите страницу, то пытаетесь получить значения из инпутов:var switch_name = $('#switch_name');
Но они у вас еще пусты! Т.е. страница загрузилась, скрипт берет данные из инпутов и ничего нету. Вам нужно обернуть это в какую-то функцию(все получения данных из инпутов) и запихнуть ее вызов на событие клика, по кнопке отправки.$('#post-button').click(function (e) {
  getValsFromInputs();
    addSwitch();
    e.preventDefault()
})
Покажи вкладку Network браузера с ajax-запросом.