KendoValidator 需要一些实际上不需要的字段

KendoValidator is requiring fields that aren't actuallyrequired

我有一个不需要的字段,如下代码所示。当我单击保存到 post 表单数据时,我收到 kendo 错误消息,该消息应该 验证其正确的邮政编码(它可以是空白)。当我离开不是我要查找的字段时,它还会显示错误消息。任何帮助都会很棒,谢谢!

HTML:

<input class="form-control " data-val="true" data-val-regex="Invalid Zip Code" data-val-regex-pattern="^\d{5}(-\d{4})?$" id="ZipCode" name="ZipCode" onkeyup="enableButton()" tabindex="4" type="text" value="">

JS:

$(document).ready(function () {
    $("#Form").kendoValidator();
    //$(".k-widget").removeClass("input-validation-error");
});

型号:

[Display(Name = "Zip Code")]
    [RegularExpression(@"^\d{5}(-\d{4})?$", ErrorMessage = "Invalid Zip Code")]
    public string ZipCode { get; set; }

您需要将 Kendo 验证器 属性 'validateOnBlur' 设置为 false(默认为 true)以在用户离开时跳过验证。

$(document).ready(function () {
    $("#Form").kendoValidator({
       validateOnBlur: false
     });
});

此外,我会在您的输入标签中使用 'validationMessage' 而不是 'data-val-regex',以及 'pattern' 而不是 'data-val-regex-pattern'。

最后,如果您省略 'required' 属性,您的用户将可以将该字段留空。

我创建了一个 Dojo,其中包含一个工作示例:http://dojo.telerik.com/uPeQE

我找到了答案。这实际上不是 Kendo 问题,而是正则表达式问题。

正则表达式要求一个字段,但我的正则表达式数据注释不接受空字符串:

    [RegularExpression(@"^\d{5}(-\d{4})?$", ErrorMessage = "Invalid Zip Code")]

我在正则表达式的末尾添加了 |^$,它解决了我的问题。

[RegularExpression(@"^\d{5}(-\d{4})?|^$", ErrorMessage = "Invalid Zip Code")]