2016-03-03 37 views
1

我有一个不需要的字段,如下面的代码所示。当我点击保存发布表格数据时,我得到的应该是的kendo错误信息验证它的一个合适的邮政编码(它可以是空白的)。它还显示错误消息,当我从字段这不是我正在寻找远离标签。任何帮助将是伟大的,谢谢!KendoValidator要求的字段不是实际需要的

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

什么是enableButton()?我认为还有其他一些我们没有看到的代码? – Ageonix

回答

1

我发现我的答案。它实际上不是一个剑道问题,而是一个正则表达式问题。

正则表达式使得所需的场,但我的正则表达式的数据标注不接受空字符串

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

我加入|^$我的正则表达式的结束,它解决了我的问题。

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

您需要剑道验证属性 'validateOnBlur' 设置为false(默认为真)在用户缩小标签时跳过验证。

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

而且,我会用“validationMessage”而不是“数据-VAL-正则表达式”,以及代替你的输入标签“数据-VAL-正则表达式模式”模式'。

最后,如果您忽略'required'属性,您的用户将被允许将该字段留空。

我创建了一个道场与这个工作的例子:http://dojo.telerik.com/uPeQE

+1

这是我将来使用的一些非常好的信息。让我问你,为什么你会选择validationMessage和pattern?另外你会如何执行它们? data-val-regex和data-val-regex-pattern属性被添加,因为我的模型中有数据注释。 – tshoemake

+1

在这种情况下,如果他们正在为您工作,您可能想继续使用它们。我无法在我的例子中使用它。我必须使用来自Telerik的每个示例的“pattern”和“validationMessage”:http://docs.telerik.com/kendo-ui/controls/editors/validator/overview – Ageonix