Asp.net MVC 4 Jquery验证器未击中InvalidHandler

时间:2016-06-19 17:46:27

标签: jquery asp.net-mvc-4 customvalidator

我在这个问题上挣扎...... 我已覆盖我的母版页以更改无效的hightlight和Unhightlight类,并修改InvalidHandler,如下所示:

<script type="text/javascript">

    $.validator.setDefaults({
        ignore: [],
        invalidHandler: function (event, validator) {
            $(".tab-content").find("div.tab-pane:hidden:has(div.has-error)").each(function (index, tab) {
                var id = $(tab).attr("id");
                alert(id);
                $('a[href="#' + id + '"]').tab('show');
            });
        },
        highlight: function (element, errorClass, validClass) {
            if (element.type === 'radio') {
                this.findByName(element.name).addClass("bad").removeClass("good");
            } else {
                $(element).addClass("bad").removeClass("good");
                $(element).closest('.form-group').removeClass('good').addClass('bad');
            }
        },
        unhighlight: function (element, errorClass, validClass) {
            if (element.type === 'radio') {
                this.findByName(element.name).removeClass("bad").addClass("good");
            } else {
                $(element).removeClass("bad").addClass(validClass);
                $(element).closest('.form-group').removeClass('bad').addClass('good');
            }
        }
    });

Hightlight和Unhightlight已被点击,但InvalidHandler并没有...... 有人能帮帮我吗? 提前谢谢!

1 个答案:

答案 0 :(得分:0)

如果您使用的是jQuery Unobtrusive Validation,它不一定会遵循默认值,而且我也无法使invalidHandler正常工作。

您可以订阅引发的事件:

from random import sample

exampleList = ["Gary","Kerry","Larry","Bob","Frank","Joshua"]

def reduce(List):
    newList = sample(List, random.randint(1, len(List)))
    return newList

reduce(reduce(reduce(reduce(exampleList)))) #<-- I want to avoid doing this#

或者我在jQuery unobtrusive source中也发现他们尝试从`$('form').on('invalid-form', function (...) { });` 中提取选项,因此您可以这样做:

jQuery.validator.unobstrusive.options

无论哪种方式,对我来说我都叫它两次,这也很痛苦。