none
Las validaciones javascript usando unobtrusive y jquery.validate en MVC 4.5 no se refrescan o actualizan hasta que se hace submit del formulario RRS feed

  • Pregunta

  • Tengo una vista en MVC 4.5 en la cual uso @Scripts.Render("~/bundles/jqueryval") para hacer uso de las validaciones que por defecto te traer visual studio al crear las aplicaciones...

    Como ya se sabe las validaciones se hacen de manera automatica, tomando como base el model que se le envia.

    El problema que tengo es que las validaciones no se muestran automaticamente cuando se sale del focus de un control a validar si no unicamente cuando el formulario hace submit. Como tampoco se actualizan al momento de corregir los errores mostrados en validaciones, permanecen alli escrito...

    Antes "al menos en MVC 4" esto no pasada, sera que es algo que tengo que configurar o por que sucede esto?

    Gracias de antemano

    lunes, 20 de octubre de 2014 20:46

Respuestas

  • hola

    podrias por medio de javascript lanzar las validaciones desde javascript

    How to manually trigger validation with jQuery validate?

    usando el validate(), aplcias la validaciones al form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:11
    lunes, 20 de octubre de 2014 21:06
  • hola

    podrias por medio de javascript lanzar las validaciones desde javascript

    How to manually trigger validation with jQuery validate?

    usando el validate(), aplcias la validaciones al form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola y gracias... Ya se cual es el error...

    Ahora estoy usando solo "jquery.validate.min.js" y estas son mis reglas de validación:

    $("#form1").validate({
                    rules: {
                        Name: {
                            required: true,
                            minlength: 2,
                            maxlength: 75,
                        }
                    },
                    messages: {
                        Name: {
                            required: "El Nombre es requerido",
                            minlength: "El Nombre debe tener entre 2 y 75 caracteres",
                            maxlength: "El Nombre debe tener entre 2 y 75 caracteres"
                        }
                    }
                });

    El problema es que como yo no tengo las propiedades directamente en la clase de mis modelos, si no que en la clase de mi modelo tengo otra clase la cual es la que contiene todo. Asi que cuando renderiza el input queda asi:

    <input name="Entity.Name" class="input-validation-error" data-val="true" data-val-length="El nombre debe tener entre 2 y 75 caracteres" data-val-length-max="75" data-val-length-min="2" data-val-required="El nombre es requerido" id="txName" maxLenght="75" type="text" value="" />

    Como se ve el name de mi input es "Entity.Name" y no es solo Name... El problema ahora es que no se como agregar la regla de esa forma ya esto da error:

     $("#form1").validate({
                    rules: {
                        Entity.Name: {

                        }
                    },
                    messages: {
                        Entity.Name: {

                        }
                    }
                });

    Como puedo hacer en ese caso?

    Hola...

    $("#form1").validate({
                    rules: {
                        "Entity.Name": {

                        }
                    },
                    messages: {
                        "Entity.Name": {

                        }
                    }
                });

    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:11
    • Desmarcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:12
    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:13
    martes, 28 de octubre de 2014 15:11

Todas las respuestas

  • hola

    podrias por medio de javascript lanzar las validaciones desde javascript

    How to manually trigger validation with jQuery validate?

    usando el validate(), aplcias la validaciones al form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:11
    lunes, 20 de octubre de 2014 21:06
  • hola

    podrias por medio de javascript lanzar las validaciones desde javascript

    How to manually trigger validation with jQuery validate?

    usando el validate(), aplcias la validaciones al form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola y gracias... Ya se cual es el error...

    Ahora estoy usando solo "jquery.validate.min.js" y estas son mis reglas de validación:

    $("#form1").validate({
                    rules: {
                        Name: {
                            required: true,
                            minlength: 2,
                            maxlength: 75,
                        }
                    },
                    messages: {
                        Name: {
                            required: "El Nombre es requerido",
                            minlength: "El Nombre debe tener entre 2 y 75 caracteres",
                            maxlength: "El Nombre debe tener entre 2 y 75 caracteres"
                        }
                    }
                });

    El problema es que como yo no tengo las propiedades directamente en la clase de mis modelos, si no que en la clase de mi modelo tengo otra clase la cual es la que contiene todo. Asi que cuando renderiza el input queda asi:

    <input name="Entity.Name" class="input-validation-error" data-val="true" data-val-length="El nombre debe tener entre 2 y 75 caracteres" data-val-length-max="75" data-val-length-min="2" data-val-required="El nombre es requerido" id="txName" maxLenght="75" type="text" value="" />

    Como se ve el name de mi input es "Entity.Name" y no es solo Name... El problema ahora es que no se como agregar la regla de esa forma ya esto da error:

     $("#form1").validate({
                    rules: {
                        Entity.Name: {

                        }
                    },
                    messages: {
                        Entity.Name: {

                        }
                    }
                });

    Como puedo hacer en ese caso?

    • Editado Zr-.- miércoles, 22 de octubre de 2014 16:01
    miércoles, 22 de octubre de 2014 15:59
  • hola

    podrias por medio de javascript lanzar las validaciones desde javascript

    How to manually trigger validation with jQuery validate?

    usando el validate(), aplcias la validaciones al form

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Hola y gracias... Ya se cual es el error...

    Ahora estoy usando solo "jquery.validate.min.js" y estas son mis reglas de validación:

    $("#form1").validate({
                    rules: {
                        Name: {
                            required: true,
                            minlength: 2,
                            maxlength: 75,
                        }
                    },
                    messages: {
                        Name: {
                            required: "El Nombre es requerido",
                            minlength: "El Nombre debe tener entre 2 y 75 caracteres",
                            maxlength: "El Nombre debe tener entre 2 y 75 caracteres"
                        }
                    }
                });

    El problema es que como yo no tengo las propiedades directamente en la clase de mis modelos, si no que en la clase de mi modelo tengo otra clase la cual es la que contiene todo. Asi que cuando renderiza el input queda asi:

    <input name="Entity.Name" class="input-validation-error" data-val="true" data-val-length="El nombre debe tener entre 2 y 75 caracteres" data-val-length-max="75" data-val-length-min="2" data-val-required="El nombre es requerido" id="txName" maxLenght="75" type="text" value="" />

    Como se ve el name de mi input es "Entity.Name" y no es solo Name... El problema ahora es que no se como agregar la regla de esa forma ya esto da error:

     $("#form1").validate({
                    rules: {
                        Entity.Name: {

                        }
                    },
                    messages: {
                        Entity.Name: {

                        }
                    }
                });

    Como puedo hacer en ese caso?

    Hola...

    $("#form1").validate({
                    rules: {
                        "Entity.Name": {

                        }
                    },
                    messages: {
                        "Entity.Name": {

                        }
                    }
                });

    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:11
    • Desmarcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:12
    • Marcado como respuesta Zr-.- martes, 28 de octubre de 2014 15:13
    martes, 28 de octubre de 2014 15:11