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