Привет! Давайте разберём ваш код.
Во-первых, вы заполняете массив в самом начале:
// Создали массив
var stepSecond = [];
// Сохранили в него свойства checked разных объектов
stepSecond[1] = $('#firmware2').prop('checked');
stepSecond[2] = $('[name="stamping"]').prop('checked');
stepSecond[3] = $('#eyelet-color').prop('checked');
stepSecond[4] = $('[name="rubber-flat"]').prop('checked');
При изменении инпутов их состояния не попадут в массив автоматически.
Во-вторых, проверка
$(stepSecond == 'true')
очень странная.
stepSecond
— массив из 5 элементов (на нулевом месте у вас undefined, 1-4 элементы заполнены. Вы сравниваете его со строкой
"true"
. Оператор сравнения
==
может вернуть либо
true
, либо
false
. В вашем случае массив
stepSecond
никогда не будет равен
строке true. Так что сравнение всегда вернёт false. Значит ваше условие эквивалентно такому:
$(false)
. Функция
$
из jQuery создаёт jQuery-объект. Тогда ваше условие превращается в
if (jQuery-объект)
, а значит всегда истинно.
Вот как можно было бы запрограммировать эту форму:
https://jsfiddle.net/isqua/gge88ogL/2/
Вам нужно получить базовые знания о том, как работает JavaScript. Что такое переменные, функции, каких типов бывают данные и т.п.