Estoy tratando de agregar validación a mi formulario con jQuery Validation Plugin, pero tengo un problema en el que el complemento pone los mensajes de error cuando estoy usando grupos de entrada.
$('form').validate({
rules: {
firstname: {
minlength: 3,
maxlength: 15,
required: true
},
lastname: {
minlength: 3,
maxlength: 15,
required: true
}
},
highlight: function(element) {
$(element).closest('.form-group').addClass('has-error');
},
unhighlight: function(element) {
$(element).closest('.form-group').removeClass('has-error');
}
});
Mi código: http://jsfiddle.net/hTPY7/4/
twitter-bootstrap
jquery-validate
twitter-bootstrap-3
Miguel Borges
fuente
fuente
Respuestas:
Para una compatibilidad total con Twitter Bootstrap 3, necesito anular algunos métodos de complementos:
Ver ejemplo: http://jsfiddle.net/mapb_1990/hTPY7/7/
fuente
resetForm()
al validador de un formulario no invocaráunhighlight
elementos no válidos, por lo que es necesario eliminar lahas-error
clase a mano al restablecer un formulario. Lo que hago es llamar a la siguiente función en lugar de llamarresetForm()
directamente al validador :function resetForm(form_id) { $(form_id).find(".form-group").removeClass("has-error"); $(form_id).data('validator').resetForm(); }
else if (element.prop('type') === 'radio') { error.insertBefore(element.parent().parent()); }
Para una compatibilidad total con Bootstrap 3, agregué soporte para grupo de entrada , radio y casilla de verificación , que faltaba en las otras soluciones.
Actualización 20/10/2017 : Inspeccioné las sugerencias de las otras respuestas y agregó soporte adicional para marcado especial de radio en línea , mejor ubicación de errores para un grupo de radios o casillas de verificación y soporte agregado para una clase personalizada de validación para evitar la validación de los controles. Espero que esto ayude y gracias por las sugerencias.
Después de incluir el complemento de validación, agregue la siguiente llamada:
Esto funciona para todas las clases de formulario Bootstrap 3. Si usa una forma horizontal, debe usar el siguiente marcado. Esto garantiza que el texto del bloque de ayuda respeta los estados de validación ("has-error", ...) del grupo de formularios .
fuente
errorClass: "help-block error-help-block"
. Ya estaba usando .help-block para obtener información de ayuda regular, y esto lo sobrescribía con mensajes de validación de formularios. Agregar una segunda clase lo hizo único y ahora se agrega en lugar de sobrescribir mi mensaje de ayuda "real".Utilizo formularios diseñados solo con Twitter Bootstrap 3. Establezco funciones predeterminadas para validor y ejecuto solo el método de validación con reglas. Yo uso los iconos de FontAweSome, pero puedes usar Glyphicons como en el ejemplo del documento.
Hecho. Después de ejecutar la función de validación:
Ejemplo de JSFiddle
fuente
Al agregar a Miguel Borges la respuesta anterior, puede darle al usuario esa retroalimentación de éxito verde agregando la siguiente línea en el bloque de código resaltado / resaltado.
fuente
esta es la solución que necesita, puede usar el
errorPlacement
método para anular dónde colocar el mensaje de errorA mí me funciona como magia. Salud
fuente
error.insertAfter('.form-group');
poner errores en todos los .form-group. Pero me mostró la idea. graciaspara Bootstrap 4 esto funciona bien conmigo
Espero que ayude!
fuente
validClass: 'valid-feedback'
Esto es lo que uso cuando agrego validación al formulario:
Esto funcionó para mí para el estilo Bootstrap 3 al usar la biblioteca de validación jquery.
fuente
Usé esto para la radio:
de esta manera, el error se muestra en la última opción de radio.
fuente
Sé que esta pregunta es para Bootstrap 3, pero como algunas preguntas relacionadas con Bootstrap 4 se redirigen a esta como duplicadas, aquí está el fragmento compatible con Bootstrap 4:
Las pocas diferencias son:
has-danger
lugar dehas-error
fuente
.has-*
clases. getbootstrap.com/docs/4.3/migration/#forms-1Para el bootstrap 4 beta hubo algunos cambios importantes entre las versiones alfa y beta de bootstrap (y también bootstrap 3), especialmente. en lo que respecta a la validación de formularios.
Primero, para colocar los íconos correctamente, necesitará agregar un estilo que equivalga a lo que estaba en Bootstrap 3 y ya no en Bootstrap 4 beta ... esto es lo que estoy usando
Las clases también han cambiado ya que la versión beta utiliza el "estado" del control en lugar de las clases que su código publicado no refleja, por lo que su código anterior puede no funcionar. De todos modos, deberá agregar la clase 'fue validada' al formulario en el éxito o resaltar / resaltar devoluciones de llamada
También recomendaría usar el nuevo elemento y clases para el texto de ayuda de control de formulario
fuente
Esto conforma los campos.
fuente
agregue una solución de radio en línea a este https://stackoverflow.com/a/18754780/966181
fuente
La respuesta de DARK_DIESEL funcionó muy bien para mí; Aquí está el código para cualquiera que quiera el equivalente usando glifos:
fuente
Intenta usar este código de muestra. Usando el complemento de validación Jquery y métodos adicionales. Este es el código de trabajo para mi proyecto. Espero que esto te ayude
fuente
Otra opción es colocar un contenedor de errores fuera de su grupo de formularios con anticipación. El validador lo usará si es necesario.
fuente