He estado tratando de obtener una buena solución de validación para mi sitio, pero estoy teniendo problemas con las diferentes opciones. He leído los documentos detenidamente y he analizado ejemplos, pero sigo teniendo problemas.jQuery validar plugin - showErrors opción - errorContainer no des-ocultar/mostrar
Mi formulario está en una tabla. Quiero que cada fila tenga su propia fila de error debajo, que normalmente estaría oculta, pero que se mostraría para cada fila según corresponda.
Las siguientes opciones se escondieron y mostraron las filas de error finas, pero el mensaje de error que aparece en cada fila de error fue de toda la concatenación de cada mensaje de error:
$('#myform').validate({
rules: {
firstName: "required",
lastName: "required"
},
messages: {
firstName: "Enter your first name.",
lastName: "Enter your last name."
},
errorContainer: '.errorRow',
errorLabelContainer: '.errorRow.appValueColumn',
errorPlacement: function(error, element) {
error.appendTo(element.parent().next());
}
});
así que traté de usar la opción showErrors de la siguiente :
$('#myform').validate({
rules: {
firstName: "required",
lastName: "required"
},
messages: {
firstName: "Enter your first name.",
lastName: "Enter your last name."
},
errorContainer: '.errorRow',
errorContainer: '.errorRow.appValueColumn',
showErrors: function(errorMap, errorList) {
$.each(errorMap, function(key, value) {
$('#'+key).parent().next().children('.appValueColumn').html(errorMap[key]);
});
Bueno, ahora los errores están separados y se muestran en el lugar correcto, pero no puedo conseguir el .errorRows
para mostrar. ¿Qué estoy haciendo mal aquí?
Muchas gracias
que siguieron su código y se aplicó a la mía. Se produce un error al hacer clic en enviar pero a la vez se actualiza una página. ¿Puedes comprobar qué error estoy cometiendo? violín aquí: https://jsfiddle.net/locateganesh/we7rkrxk/1/ – locateganesh
Bueno, mirando la consola, puede ver que hay una excepción "Unkeught TypeError: this.defaultShowErrors no es una función". Como digo en la publicación 'this.defaultShowErrors()' debería llamarse al final del manejador personalizado 'showErrors', pero en el ejemplo del código, estaba encerrado en' $ .each() '! Buena captura ;-) –