Javascript 验证剑道中的所有或无文本字段&;动态删除消息

Javascript 验证剑道中的所有或无文本字段&;动态删除消息,javascript,jquery,kendo-ui,Javascript,Jquery,Kendo Ui,对于下面的代码,如果用户输入address/city/state/zip字段,它会在4个必填字段中查找空字段。然后它循环检查其中是否有空的。如果所有4个都为空,则验证通过。如果它们都包含数据,那么它应该通过。它应该失败的唯一时间是其中1-3个为空 var validator = $("#AddressInfoForm").kendoValidator( { rules: { PayeeRequired: function (input) {

对于下面的代码,如果用户输入address/city/state/zip字段,它会在4个必填字段中查找空字段。然后它循环检查其中是否有空的。如果所有4个都为空,则验证通过。如果它们都包含数据,那么它应该通过。它应该失败的唯一时间是其中1-3个为空

var validator = $("#AddressInfoForm").kendoValidator(
    {
        rules: {
            PayeeRequired: function (input) {
                if (input.is("[name=Address]") || input.is("[name=City]") || input.is("[name=State]") || input.is("[name=Zip]")) {
                    var fieldsBlank = 0;
                    var requiredFields = ["Address", "City", "State", "Zip"];
                        for (var i = 0; i < requiredFields.length; i++) {
                            var val = $('#' + requiredFields[i]);
                            if (val.val() == "") {
                                fieldsBlank += 1;
                            }
                        }
                    if (fieldsBlank > 0 && fieldsBlank < 4 && input.val() == "")
                        input.addClass("inputfields-validation-error");
                        fieldsBlank = 0;
                        return false;
                    }
                    input.removeClass("inputfields-validation-error");
                    return true;
                }
            }
        },
    }
).data("kendoValidator");
似乎工作我想要的;但是,validator.validate()会为表单中的所有其他字段设置验证错误。我只希望对地址、城市、州和邮政编码这4个字段进行验证。有什么想法吗

$("#Address, #City, #State, #Zip").on("change", function () {
    validator.validateInput($("input[name=Address]"));
    validator.validateInput($("input[name=City]"));
    validator.validateInput($("input[name=State]"));
    validator.validateInput($("input[name=Zip]"));
});
看来效果不错。如果有更好的方法,请告诉我

看来效果不错。如果有更好的方法,请告诉我

$("#Address, #City, #State, #Zip").on("change", function () {
    validator.validateInput($("input[name=Address]"));
    validator.validateInput($("input[name=City]"));
    validator.validateInput($("input[name=State]"));
    validator.validateInput($("input[name=Zip]"));
});