jquery - 阻止自定义验证器在每次击键时触发

标签 jquery asp.net-mvc unobtrusive-javascript

我使用 MVC DataAnnotations 和 jQuery unobtrusive javascript 库编写了一个自定义验证器。效果很好。我现在遇到的唯一问题是,在初始验证之后,如果用户编辑的是字段,则每次击键都会触发验证器。由于验证器通过访问 Web 服务来验证输入,因此我希望它始终在用户离开字段或提交表单时验证输入。有办法改变这种行为吗?这是我的代码:

<script type="text/javascript">
    $.validator.addMethod("validate_zipcode", function (value, element) {
        if (value == null || value.length == 0) {
            return true;
        }

        var isValid = false;
        $.ajax({
            async: false,
            dataType: "json",
            url: "/api/iszipvalid/" + value,
            success: function (response) {
                isValid = response;
            }
        });

        return isValid;
    });

    $.validator.unobtrusive.adapters.addBool('zipcode', 'validate_zipcode');
</script>

最佳答案

我不肯定这将与 ASP.NET MVC 结合使用(我稍后将启动一个测试项目),但验证允许您 set defaults对于像这样的所有 validate 实例:

$.validator.setDefaults({ onkeyup: false });

如果您可以在 MVC 获取 validate 句柄之前添加该行,它可能会起作用,但它会禁用所有表单中的所有字段的 onkeyup (根据您的帖子,看来这样就可以了)。

希望有帮助。

关于jquery - 阻止自定义验证器在每次击键时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4970443/

相关文章:

asp.net-mvc - MVC3 DataAnnotationsExtensions 错误使用数字属性

javascript - 如何检查一个输入的多个值

javascript - 使用 jquery/Angularjs 清除浏览器缓存

asp.net-mvc - 将图片上传到 Windows Azure 网站

asp.net-mvc - 在 ASP.NET MVC 组织帐户中访问 Azure AD Graph API

javascript - 如何将 HTML5 File API 与 Unobtrusive JavaScript 一起使用?

javascript - 动态创建的元素上的事件绑定(bind)?

jquery - 无法根据复选框选中的属性添加/删除按钮中的禁用属性

javascript - jQuery:防止多次点击?

asp.net-mvc - MVC 5 OWIN - 外部登录时IsAuthenticated为false(QQ连接)