Первый вариант правильный. Что именно у тебя возвращает undefined? Функция val()?
Попробуй задебажить это поэтапно:
- Создай константу в которой будет хранится строка с нужным тебе селектором:
const selectorString = `.c_ipt_surname${i}`
console.log({ selectorString })
- Получи DOM элемент:
const surnameElement = $(selectorString)
console.log({ surnameElement })
- Получи значение, которое ввёл юзер:
const surname = surnameElement.val()
console.log({ surname })
Последним пунктом я бы посоветовал выпилить jq и больше никогда им не пользоваться. Но этот пункт слишком opionated, я не стал его включать.