¿Cómo restablezco un formulario?
es decir, borre los valores de todos los campos y elimine los mensajes de error de ValidationSummary validación-resumen-errores con jquery.
Yo uso el siguiente código, pero no funciona:
var validator = $("#myform").validate(); validator.resetForm();
Estoy usando asp.net MVC3 y los scripts jquery están incluidos en mi página.
<script src="@Url.Content("~/Scripts/jquery-1.4.4.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.min.js")" type="text/javascript"></script> <script src="@Url.Content("~/Scripts/jquery.validate.unobtrusive.min.js")" type="text/javascript"></script>
Escribí una extensión jQuery rápida para manejar este problema cuando lo encontré, que:
Se puede llamar desde un elemento $(seleccionado) dentro del formulario o en el propio formulario.
Aquí hay un ejemplo de llamada (la entrada está dentro de un formulario):
<input onclick="$(this).resetValidation()" type="reset" value="Reset" />
Aquí está el código del complemento jQuery:
(function ($) { //re-set all client validation given a jQuery selected form or child $.fn.resetValidation = function () { var $form = this.closest('form'); //reset jQuery Validate's internals $form.validate().resetForm(); //reset unobtrusive validation summary, if it exists $form.find("[data-valmsg-summary=true]") .removeClass("validation-summary-errors") .addClass("validation-summary-valid") .find("ul").empty(); //reset unobtrusive field level, if it exists $form.find("[data-valmsg-replace]") .removeClass("field-validation-error") .addClass("field-validation-valid") .empty(); return $form; }; })(jQuery);
¡Ojalá esto haya ayudado! Puede leer más sobre esto y ver algunos otros ejemplos en mi publicación de blog aquí también:
$('.field-validation-error') .removeClass('field-validation-error') .addClass('field-validation-valid'); $('.input-validation-error') .removeClass('input-validation-error') .addClass('valid');
podría usar una solución nativa (validar 1.9.0 + discreto)
var $form = $(this).closest('form'); // reset errors with unobtrusive $form.trigger('reset.unobtrusiveValidation'); // reset inputs var validator = $form.validate(); // get saved validator //validator.settings.ignore = ''; // if form hided (closed ui dialogs, etc) validator.resetForm();