使用jquery.unobtrusive验证手动验证表单

时间:2015-11-30 12:11:05

标签: javascript jquery asp.net-mvc forms validation

我目前正在开发一个计算总计的表单。例如,字段C中的值将从输入到字段A和字段B的输入项生成。

Field A - 10,
Field B - 20
Field C - 30

字段C对其进行一些验证,使其小于某个值。我正在使用MVC中的DataAnnotations库,我已经连接了jquery.unobtrusive库以在客户端上应用验证。我还选择了以下代码来显示错误的每个字段的错误图标。

$(function () {
    $('form').each(function () {
        var validator = $(this).data('validator');
        validator.settings.showErrors = onValidated;
    });

function onValidated(errorMap, errorList) {
    $.each(errorList, function () {
        onError($(this.element), this.message);
    });

    if (this.settings.success) {
        $.each(this.successList, function () {
            onSuccess($(this));
        });
    }
}

function onSuccess(inputElement) {
    var fieldId = getElementFieldName(inputElement);
    var error = $("#" + fieldId + "Error").hide();
    error.attr('title', '');
}

 function onError(inputElement, message) {
        var fieldId = getElementFieldName(inputElement);
        var error = $("#" + fieldId + "Error").show();
        error.attr('title', message);
    }

这会显示或隐藏所选元素的图标 - 因此,如果我在字段A中输入了不正确的值,那么它将相应地验证它并显示带有错误消息的图标。

我不确定这样做的最佳方式,但我认为可能在输入后验证所有字段是最好的想法 - 然后如果更新字段A,则检查字段C.

我也在寻找一个可以连接方法来检查任何错误的点 - 目前我可以通过寻找任何图标来做到这一点 - 但我看不出有利于线路这样它可以运行一次而不是每个字段。

0 个答案:

没有答案