Radio-инпуты проверяются на "включенность" свойством "checked" DOM-элемента.
Если совсем просто, придерживаясь текущей манере написания JS, функцию validateForm() дописываем до
function validateForm() {
// This function deals with validation of the form fields
var x, y, i, valid = true;
x = document.getElementsByClassName("tab");
y = x[currentTab].getElementsByTagName("input");
// A loop that checks every input field in the current tab:
for (i = 0; i < y.length; i++) {
// If a field is empty...
if (y[i].value == "") {
// add an "invalid" class to the field:
y[i].className += " invalid";
// and set the current valid status to false
valid = false;
}
}
y = x[currentTab].querySelectorAll('input[type="radio"]');
if (y.length > 0) {
var checked = false;
for (i = 0; i < y.length; i++) {
if (y[i].checked) {
checked = true;
break;
}
}
if (!checked) {
/*
здесь добавть код, который применит
класс "invalid" для контейнера с radio-элементами
*/
valid = false;
}
}
// If the valid status is true, mark the step as finished and valid:
if (valid) {
document.getElementsByClassName("step")[currentTab].className += " finish";
}
return valid; // return the valid status
}
Единственное, надо учитывать, что radio-инпуты группируются по полю "name". В данном случае это обрабатывать не надо. Но если на одной вкладке окажется несколько групп radio-инпутов, то и проверять на "включенность" надо будет каждую группу отдельно.