Недавно я столкнулся с той же проблемой и нашел другое решение.
Сценарий
У нас есть таблица, которая динамически увеличивается по мере того, как пользователи добавляют (или удаляют) строки. Каждая новая строка содержит несколько элементов, и мы хотим, чтобы входные элементы каждой строки были в одной группе проверки - по одной на строку - потому что мы хотим только одну метку ошибки для каждой строки. Поскольку строки добавляются динамически - задолго после того, как мы вызываем $ ('# the-form'). Validate () - нам нужен был способ добавления новой группы каждый раз, когда пользователь добавляет строку.
Наше решение
Мы взломали объект валидатора, напрямую изменив его член группы:
// on document ready:
validator = $('#the-form').validate({
groups: ...,
rules: ...,
messages: ...,
etc.
});
...
// later, when we need to add a new validation group:
validator.groups['first_name_row_5'] = 'full_name';
validator.groups['last_name_row_5'] = 'full_name';
Эти две последние строки эквивалентны
groups: {full_name: 'first_name_row5 last_name_row_5'}
в опциях валидатора, но может быть добавлено после первоначального вызова validate ().
Это взлом внутренностей jquery.validate, но он работает (с помощью jquery validate v1.9.0).
Наконец, прямо ответить на вопрос ОП: вместо этого:
$("#mc-embedded-subscribe-form").validate().groups = { username: "FNAME LNAME" };
попробуйте это:
var validator = $("#mc-embedded-subscribe-form").validate();
validator.groups['FNAME'] = 'username';
validator.groups['LNAME'] = 'username';