Как использовать js-переменную внутри jQuery.validate?

Рейтинг: 1Ответов: 2Опубликовано: 20.11.2014

На форме обратной связи у меня есть поле <input id="name_user" name="name_user" value="">. Это поле обязательно к заполнению. Решил добавить клиентскую валидацию при помощи jquery.validate.js

//Инициализирую js переменную, в которой будет храниться имя моего input поля.
var name="name_user"

//Запускаю валидацию полей при отправки формы
$("#form").validate({
    rules: {
        name: {
                required: true
            }
    },

    messages: {
         name: {
                required: "Это поле обязательно для заполнения"
         }
    },
});

Внутри $("#form").validate({ ... }) переменная name не видна.

Как я могу переменную "name" использовать в том месте?

Ответы

▲ 1

Суть в том, что внутри rules(messages) функция ждёт не переменную, а атрибут name от любого input формы, поэтому, исходя из вашего кода, функция пытается найти input[name='name'] и не находит его. Ну и это значит, что передать переменную name в функцию нельзя. Поэтому надо использовать так в вашем случае:

'rules: {
        name_user: {
                required: true
            }
    }'

UPD

Попробуйте сделать так, если у вас динамический name у input:

var name = $('input[name="'+ name_user +'"]');
▲ 1

Можно попробовать .rules()

Доки