javascript - 即使表单值未更改,如何强制 jquery 验证器触发验证方法

标签 javascript jquery asp.net forms validation

我有一个小的 aspx 表单,我使用 jquery 验证器对其进行验证。

var validator = $('form').validate({
    invalidHandler: function (event, validator) {
        errorsCount.Count = errorsCount.Count + 1;
        if (errorsCount.Count >= 3) {
            window.location.replace("http://" + window.location.hostname + ":" + window.location.port + "/RequestError.aspx");
        }
    },
    submitHandler: function (form) {
        errorsCount.Count = 0;
        form.submit();
    },
    rules: {
        txtFirstName: {
            required: true,
            maxlength: 50,
            containsAlphaCharacter: true
        }
    },
    onkeyup: false,
    messages: {
        txtFirstName: {
            required: EnrollmentValidationMessages.English.REQUIRED_FIELD,
            maxlength: EnrollmentValidationMessages.English.MAX_STRING_LENGTH
        }
    }
});

通过此设置,如果我在任何字段上导致验证错误并点击提交按钮,该方法将运行得很好。但是,如果我再次点击提交按钮,该方法将不会运行。这就是我需要解决的问题。基本上,我需要 invalidHandler 在每次用户单击按钮时运行,无论表单值是否更改。

最佳答案

提交表单后,jquery 验证器将缓存先前的值。除非您更改无效值或更改表单中的任何字段值,否则它将不会提交。

要强制 jquery 验证器再次重新验证而不更改字段值,您必须从 jquery 验证器中删除以前缓存的值。

为此,请在调用验证器之前将此行代码放在顶部。

$("#form :input").removeData("previousValue");

或者如果您只想删除特定值,

$("#txtFirstName").removeData("previousValue");

这会起作用。

关于javascript - 即使表单值未更改,如何强制 jquery 验证器触发验证方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38247976/

相关文章:

jquery - DIV 的 jQuery-UI 的 CSS

javascript - jquery中的事件绑定(bind)问题

c# - 如何暂时排除属性(property)被保存到 RavenDb?

c# - OpenXML - 保护所有工作表

javascript - jQuery 不是带有 [name] 选择器的选择器

javascript - window.open() 的重定向在 IE 中不起作用

javascript - 使用 Angular 2 实现 Google Calendar API

jquery - Google CDN 设置 Cookie,为什么?

javascript - 选择所有复选框以在 Gridview 中启用 boxex

javascript - "combine"以功能方式在 javascript 中运行?