jQuery Validator - Как выполнить проверку на неформальные элементы?

У меня есть форма, в которой пользователь может добавлять элементы в список. Когда они отправляются на отправку этой страницы, я хочу убедиться, что в этом списке действительно есть элементы (а не отдельные элементы, поскольку они уже были проверены). Каждый элемент получает добавлен в новую строку в таблице с TR, имеющим дополнительный атрибут «действие» ... так это выглядит так:

<tr action="whatever">...</tr>

Я пытался добавить настраиваемый addMethod, который вызывал функцию, которая будет подсчитывать количество строк с действием в качестве атрибута:

$("#tableID").find("tr[action]").length

, и если эта длина больше 0, возвращается истина, в противном случае - ложь.

Это отлично работает вне вызовов валидатора, но по какой-то причине полностью пропускает его .

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

Уменьшенный код:

* обратите внимание, что у меня уже есть значения по умолчанию установлены для сообщений, а что нет.

$.validator.addMethod("validProductList", function (value, element) {
        return this.optional(element) || validateProductList();
    }, "You have no products in your list");

$("#processForm").click(function () {
        $("#pageForm").validate({
            submitHandler: function () {
                $("#errors").hide();
                //processPage();
            },
            rules: {
                //other rules,
                validProductList: true
            }
        });
    });

function validateProductList() {
    var isValid = false;
    var useList = $("#tblAddedProducts").find("tr[action]").length;
    if (useList > 0) { isValid = true; }
    return isValid;
}
6
задан Andrew Whitaker 19 July 2011 в 23:00
поделиться