我使用MVC數據註釋爲我的模型上的字段指定驗證正則表達式。該字段是可選的,即,它不具有施加的[Required]
屬性:不顯眼的驗證:可選字段的正則表達式驗證
[RegularExpression(@"^\d+$")]
public int Quantity { get; set; }
當客戶端驗證運行時,該字段不針對正則表達式驗證。
$jQval.addMethod("regex", function (value, element, params) {
var match;
if (this.optional(element)) { // <- returns if field is optional
return true;
}
match = new RegExp(params).exec(value);
return (match && (match.index === 0) && (match[0].length === value.length));
});
我怎樣才能添加驗證,使空場是允許的,但如果輸入一個值,它必須在正則表達式匹配:綜觀jquery.validate.unobtrusive.js代碼爲什麼會變得清楚了嗎?
關於編輯:很明顯,我可以更改jquery.validate.unobtrusive.js中的代碼,但我寧願保留此文件,以免我的更改被未來更新覆蓋。
如果由於if(this.optional(element)){'condition –
@ Arun P Johny:字段是空的,它應該允許:完全。我該如何改變這種情況(同時將代碼保留在jquery.validate.unobtrusive.js中)? – matk
參見http://jsfiddle.net/arunpjohny/m8J8H/1/ –