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