2012-04-27 31 views
22

Tengo un problema un tanto extraño. Deseo activar un mensaje de error de validación de jquery en un elemento incluso si es válido.jQuery mensaje de error de activación de validación

Escenario: Tengo un formulario grande. Una de las entradas es para PersonalId. Es opcional ingresar ese ID personal. Además de esa entrada, tengo un botón normal (no el botón de enviar). Si haces clic en eso (obteniendo información de ajax) y el campo PersonalId está vacío, quiero activar ese mensaje de error.

¿Es posible con jQuery Validate o necesito crear mi propia función?

+0

Posible duplicado de [Establecer manualmente el error de validación no intrusivo en un cuadro de texto] (https://stackoverflow.com/questions/7380278/manually-set-unobtrusive-validation-error-on-a-textbox) – KyleMit

Respuesta

45

¿Es posible con jQuery Validate o necesito crear mi propia función?

Ambos, más o menos. Puede usar la función showErrors para mostrar los errores en el formulario de forma manual, pero como no desea que esta sea una regla habilitada cuando envíe el formulario, tendrá que hacer su propia comprobación para ver el valor en la entrada.

Algo así como:

var $validator = $("#myform").validate(); 
$("#checkid").click(function() { 
    var errors; 

    if (!$("#personalid").val()) { 
     /* Build up errors object, name of input and error message: */ 
     errors = { personalid: "Please enter an ID to check" }; 
     /* Show errors on the form */ 
     $validator.showErrors(errors);    
    }   
}); 

Ejemplo:http://jsfiddle.net/andrewwhitaker/XjZer/

Tenga en cuenta que la forma sigue someterá si no hay nada en el campo personalid.

+0

Tengo el mismo problema pero ¿cómo puedo disparar el error para el nombre multidimensional? No pude resolver esto con tu solución. p.ej. 'field =" email "; var element = "data [User] [" + field + "]"; errors = {element: field_error}; $ validator.showErrors (errors); ' – Parixit

Cuestiones relacionadas