0

当前,我有以下自定义规则来验证表单的字段。

规则

$scope.validator = $("#frmPreregistration").kendoValidator({
    rules: {
        varifySsn: function (input) {
            var ret = true;
            if (input.is("[name=last4Ssn]") && $scope.Last4DigitsSsn != undefined ) {
                ret = $scope.validateSsnLast4Digit();
            }
            return ret;
        },
        varifyDob: function (input) {
            var ret = true;
            if (input.is("[name=dob]") && $scope.DateOfBirth != undefined ) {
                ret = $scope.validateDateOfBirth();
            }
            return ret;
        },
        varifyZipCode: function (input) {
            var ret = true;
            if (input.is("[name=zipCode]") && $scope.ZipCode != undefined ) {
                ret = $scope.validateZipCode();
            };
        return ret;
        }
    },
    messages: {
        varifySsn: $scope.resources.SsnLast4DigitDoesNotMatch,
        varifyDob: $scope.resources.DobNotMatchWithSelectedUserType,
        varifyZipCode: $scope.resources.ZipCodeNotMatchWithSelectedUserType,
    }
}).data("kendoValidator");

每当用户通过以下方式在表单的任何字段中输入值时,我都会验证表单$scope.validator.validate()

这导致即使在用户输入任何值之前也会触发所有字段的规则。

问题 是否有可能我可以一次运行特定的验证规则或对特定字段运行验证?

4

1 回答 1

3

您可以validateInput用于特定元素。

例子:

$scope.validator.validateInput($("input[name=dob]"));

要隐藏无效消息,您可以使用hideMessages功能

$scope.validator.hideMessages();
于 2015-05-26T10:06:30.733 回答