2016-03-03 63 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