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

时间:2016-03-03 06:19:56

标签: javascript jquery model-view-controller kendo-ui telerik

我在代码中有一个不需要显示的字段。当我单击“保存”以发布表单数据时,我会收到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; }

2 个答案:

答案 0 :(得分:1)

您需要将Kendo Validator属性'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

答案 1 :(得分:1)

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

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

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

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

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