jQuery Validator - Como validar contra itens que não são de formulário?
Tenho um formulário no qual um usuário pode continuar adicionando itens a uma lista. Quando eles enviarem esta página, quero validar se essa lista realmente possui itens (não os itens individuais, pois já foram validados). Cada item é adicionado a uma nova linha em uma tabela com o TR com um atributo extra de "ação" ... para que fique como:
<tr action="whatever">...</tr>
O que eu estava tentando fazer é adicionar um addMethod personalizado chamado de função que contaria o número de linhas com ação como um atributo:
$("#tableID").find("tr[action]").length
e se esse comprimento for maior que 0, ele retornará verdadeiro, caso contrário, fals
Isso funciona bem fora das chamadas do validador, mas por algum motivo o ignora completament
Eu realmente poderia usar um exemplo ou algum insight sobre como validar essa regra, mesmo que não seja um elemento de formulário especificament
Código reduzido:
* note que eu já tenho padrões sendo configurados para mensagens e quais nã
$.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;
}