Tengo un formulario donde un usuario puede seguir agregando elementos a una lista. Cuando vayan a enviar esta página, quiero validar que esta lista en realidad tiene elementos (no los elementos individuales, ya que ya han sido validados). Cada elemento se agrega a una nueva fila en una tabla con el TR tener un atributo adicional de "acción" ... por lo que parece:jQuery Validator - ¿Cómo validar contra elementos que no son de formulario?
<tr action="whatever">...</tr>
Lo que estaba tratando de hacer es añadir un addMethod personalizado que llama una función que contar el número de filas con la acción como un atributo:
$("#tableID").find("tr[action]").length
y si esta magnitud es mayor que 0, devuelve verdadero, de lo contrario, falso.
Esto funciona bien fuera de las llamadas del validador, pero por alguna razón se saltea completamente.
Realmente podría usar un ejemplo o alguna idea sobre cómo hacer que valide esta regla, aunque no sea un elemento de formulario específicamente.
en escala código:
* nota que ya tengo por defecto siendo la configuración de los mensajes y lo que no.
$.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;
}
Le sigh. ¡Gracias! Temía que eso fuera lo que tenía que pasar y realmente no me gustaba agregar un solo campo oculto solo para validar otro. – Joshua
El truco de campo oculto ya no funciona, ya no valida entradas ocultas en la última versión. – burzum