jquery validate. It may be a bug in errorContainer and errorPlacement.
Hi,
When I create a div as a container to display errors, they are displayed only if indicated in errorPlacement. It is not just the problem, as indicated in errorPlancement the div to display errors when passed validations, error messages do not disappear.
I tried it with jQuery 1.11.1, 1.12.1, 2.2.0 and jQuery-validations v 1.13.1, 1.14.0 and 1.15.0 with the same result.
- JS For Usuarios form
- /**
- * DEFAULT GLOBAL JQUERY VALIDATIONS
- */
- jQuery.validator.setDefaults({
- debug: true,
- ignore: "input[type=hidden]", //IGNORAR INPUTS OCULTOS
- errorElement: "span",
- errorClass: "has-error",
- wrapper: "li",
- errorContainer: $("#error_placeholder"),
- errorLabelContainer: "#messageEerror ul",
- errorPlacement: function ( error, element ) {
- error.insertAfter( "#error_placeholder" );
- },
- highlight: function ( element, errorClass, validClass ) {
- $( element ).parents( ".form-group" ).addClass( "has-error" ).removeClass( "has-success" );
- },
- unhighlight: function (element, errorClass, validClass) {
- $( element ).parents( ".form-group" ).addClass( "has-success" ).removeClass( "has-error" );
- },
- });
- /**
- * USUARIOS
- */
- var usuariosFrm = (function(){
-
- $(document).ready(function(){
-
- /**
- * REGLAS DE VALIDACION PARA EL FORMULARIO
- */
- $( "#usuarioFilter" ).validate( {
- rules: {
- usuarioId: "required",
- usuarioNombre: "required",
- username: {
- required: true,
- minlength: 2
- },
- usuarioApellido: {
- required: true,
- minlength: 5
- },
- departamento: {
- required: true
- },
- fechaAlta: {
- required: true,
- date: true
- }
- },
- messages: {
- usuarioId: {
- required: "ID usuario requerido"
- },
- usuarioNombre: {
- required: "Nombre usuario requerido"
- },
- usuarioApellido: {
- required: "Apellidos requerido"
- },
- departamento: {
- required: "Departamento requerido"
- },
- fechaAlta: {
- required: "Fecha alta requerida",
- date: "Entre una fecha correcta"
- }
- }
-
- } );//FIN VALIDACIONES
- $("#btnSearch").on('click', function(){
- if($("#usuarioFilter").valid()){
- console.log("Formulario ha pasado correctamente las validaciones!");
- }else{
- console.log("Formulario NO ha pasado las validaciones!");
- }
- });
-
- });
- })(jQuery);
And HTML
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
- <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
- <head>
- <meta http-equiv="X-UA-Compatible" content="chrome=1">
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
- <script type="text/javascript" src="jquery/1.11.1/js/jquery-1.11.1.js"></script>
- <script type="text/javascript" src="jquery-validations/1.15.0/js/jquery.validate.js"></script>
- <script type="text/javascript" src="usuarios/usuarios.js"></script>
-
- </head>
- <body>
- <div id="error_placeholder" class="alert alert-danger" role="alert">
- </div>
- <div id="filtro" class="collapse in">
- <form id="usuarioFilter" name="usuarioFilter" class="well form-horizontal"
- action=""
- onSubmit="return false;"
- >
-
- <fieldset>
- <div class="row-fluid">
- <div class="col-xs-4">
- <div class="form-group">
- <label for="usuarioId"><spring:message code="acciones.usuario.id.label"/></label>
- <input type="text" id="usuarioId" name="usuarioId" class="form-control input-sm"
- placeholder="Identificador usuario" >
- </div>
- </div>
- <div class="col-xs-4">
- <div class="form-group">
- <label for="usuarioNombre"><spring:message code="acciones.usuario.nombre.label"/></label>
- <input type="text" id="usuarioNombre" name="usuarioNombre" class="form-control input-sm"
- placeholder="Nombre usuario">
- </div>
- </div>
- <div class="col-xs-4">
- <div class="form-group">
- <label for="usuarioApellido"><spring:message code="acciones.usuario.apellido.label"/></label>
- <input type="text" id="usuarioApellido" name="usuarioApellido" class="form-control input-sm"
- placeholder="Apellido usuario">
- </div>
- </div>
- </div>
- <div class="row-fluid">
- <div class="col-xs-4">
- <div class="form-group">
- <label for="departamento"><spring:message code="acciones.usuario.depto.label"/></label>
- <select id="departamentoSelect" name="departamentoSelect" class="form-control input-sm">
- <option><spring:message code="option.select.escoger"/></option>
- </select>
- </div>
- </div>
- <div class="col-xs-4">
- <div class="form-group">
- <label for="fechaAlta"><spring:message code="acciones.usuario.fecha.alta.label"/></label>
- <div id="fechaAltaCont">
- <div class="input-group date">
- <input id="fechaAlta" name="fechaAlta" type="text" class="form-control input-sm" placeholder="dd/mm/aaaa">
- <span class="input-group-addon">
- <span class="glyphicon glyphicon-calendar"></span>
- </span>
- </div>
- </div>
- </div>
-
- </div>
- </div>
- </fieldset>
-
- </form>
- </div>
- <div>
-
- <button id="btnSearch" type="submit" title="buscar">buscar
- </button>
- </div>
- </body>
- </html>
Thanks in advace.
I put de zip test with jquery and jquery validate included.