2011-01-24 9 views
7

En mi página asp.net mvc necesito tener un botón "borrar" que restablece ciertos campos de entrada y borra todos los mensajes de error. Borrar las entradas está bien, pero dado que los mensajes de validación son generados por asp.net mvc javascript, ¿no es obvio para mí cómo borrarlos?Borrar los mensajes de validación de ASP.Net MVC con jQuery

Actualización: Esto terminó funcionando bien para mí.

$(".field-validation-error").empty(); 
+0

¿Son los mensajes de error del lado del servidor que desea borrar? –

+0

Pensé que se generaron en el lado del cliente, pero acabo de conectar el violín y se generaron en el servidor después de todo. Sería bueno si todavía pudiera eliminarlos presionando un botón en el cliente sin requerir una nueva presentación. – sipwiz

Respuesta

4

Puede ver el código html generado en el navegador y luego simplemente vaciarlo a través de jquery, p. empty()

Para encontrar el código generado:

  • devolución de datos normal: Vistas "código fuente" de la página en el navegador y busque el mensaje de error. Encuentra el div principal para vaciarlo.
  • Llamada de Ajax: haga clic derecho e inspeccione los elementos en Chrome (otros navegadores modernos lo llaman de manera diferente, pero deberían tener la herramienta). Esto le dará el html generado en el estado actual (después de la llamada ajax). Encuentre el div principal y vacíelo.

Esperanza esto ayuda

0

Tener un botón de entrada de reposición podría ayudar, pero sólo se restablece el formulario de nuevo a su estado cuando el formulario se cargó.

Cuando quiero restablecer todos los valores, por lo general disfrazar un hipervínculo como un botón de reinicio. Cuando alguien hace clic en él, solo hace una nueva solicitud GET para el formulario. Como la acción del controlador para una solicitud GET simplemente devuelve un nuevo modelo vacío, tiene el mismo efecto que un botón "borrar".

+0

Sí, esa puede ser la forma más fácil, pero aún me interesaría saber si hay una forma de hacerlo desde el lado del cliente. – sipwiz

+0

Sí, probablemente debería haber leído su título "con jQuery". – danludwig

1

una función simple y reutilizable jQuery puede llamar en cualquier objeto jQuery:

$.fn.clearErrors = function() { 
    $(this).each(function() { 
     $(this).find(".field-validation-error").empty(); 
     $(this).trigger('reset.unobtrusiveValidation'); 
    }); 
}; 

Uso:

question.clearErrors(); 

Respuesta original: https://stackoverflow.com/a/16165831/114029

1
$('.field-validation-error').text("") 
+2

Agregue algunas explicaciones a su respuesta para que sea útil para otros lectores. –

Cuestiones relacionadas