добавление проверки jquery после создания формы - PullRequest
1 голос
/ 20 марта 2010

Я использую плагин проверки jquery

Сначала я добавляю подтверждение в форму:

$('#EmployeeForm').validate({
        rules: {
            "Employee.FirstName": "required",
            "Employee.PatronymicName": "required",
            "Employee.LastName": "required",
            "Employee.BirthDay": { required: true, date: true }
        },

        messages: {
            "Employee.FirstName": { required: "*" },
            "Employee.PatronymicName": { required: "*" },
            "Employee.LastName": { required: "*" },
            "Employee.BirthDay": { required: "*", date: "00.00.00 format" }
        }
    });

Пока все работает нормально. Затем мне позже необходимо добавить правила проверки к другим элементам формы:

$('#Address_A.Phone1, #Address_A.Phone2, #Address_B.Phone1, #Address_B.Phone2')
            .rules("add", {
                digits: true
            });

Здесь я получаю сообщение об ошибке: 'form' является нулем или не является объектом

Я проверяю, форма и все элементы в ней созданы, прежде чем я добавлю к ней проверку.
Я не могу понять, что не так.

Ответы [ 3 ]

1 голос
/ 20 марта 2010

Возможно ли, чтобы последний добавил результат, возвращаемый AJAX - результат, который мог заменить форму на странице? Или, может быть, в отдельном разделе «под нагрузкой», который может быть запущен до применения плагина проверки? Я бы предложил использовать незавершенный валидационный скрипт и перейти к отладчику (мой выбор - Firefox / Firebug). Установите точки останова как в настройке проверки, так и в добавлении правил, чтобы увидеть, какая из них ударила первой. Если форма заменяется с помощью AJAX, вам придется повторно применить к ней подключаемый модуль проверки, прежде чем добавлять правила, поскольку старая форма больше не доступна.

1 голос
/ 20 марта 2010

Просто предположение Address_A.Phone1 идентификатор вашего элемента?

Если да, я полагаю, что ваши проблемы связаны с тем, что вы используете . в идентификаторах элементов. Но jQuery не поймет, например, #Address_A.Phone1 as, дайте мне элемент с идентификатором Address_A.Phone1, но вместо этого он будет интерпретировать этот селектор как:

Но на самом деле это не объясняет ошибку. Можете ли вы добавить, в какой строке эта ошибка происходит. Это в вашем коде или внутри кода плагина? Если внутри плагина, на какой строке

1 голос
/ 20 марта 2010

Я никогда не использовал этот плагин, но из того, что я вижу в документации , вы должны использовать обычные селекторы jQuery вместо #Address_A.Phone1, #Address_A.Phone2, #Address_B.Phone1, #Address_B.Phone2 (ну, это тоже обычные селекторы, но они не имеют смысла при нормальном использовании ).

Поэтому попробуйте использовать что-то вроде этого: #EmployeeForm #first-name, #EmployeeForm #last-name

...