你可以在Brad Wilson's blog article找到很多有關asp.net mvc的不顯眼驗證的信息,包括創建自定義驗證器。
基於以下HTML(應該是文本框的輔助輸出)
<input type="text" name="Age"
data-val="true"
data-val-required="This field is required"
data-val-minage="You should be 18 years or older, go get your parents!"
data-val-minage-value="18" />
<input type="submit"/>
您可以添加以下JavaScript得到的東西在客戶端驗證:
// Extend date with age calculator
Date.prototype.age = function (at) {
var value = new Date(this.getTime());
var age = at.getFullYear() - value.getFullYear();
value = value.setFullYear(at.getFullYear());
if (at < value) --age;
return age;
};
// Add adapter for minimum age validator. Wrap in closure
(function ($) {
$.validator.unobtrusive.adapters.addSingleVal("minage", "value");
} (jQuery));
// Add client side minimum age validator
$.validator.methods.minage = function (value, element, params) {
// If no value is specified, don't validate
if (value.length == 0) {
return true;
}
var dob = new Date(Date.parse(value));
if (dob.age(new Date()) < params || dob == 'Invalid Date') {
return false;
}
return true;
};
學分年齡計算器是由於Dave
的一兩件事這裏缺少的是全球化的,但我想這是出了問題的範圍。順便說一句很容易使用jquery Globalize plugin
希望實現這有助於
這是夢幻般的。我認爲我正在斷開適配器的工作方式以及jqv如何互動..我已經閱讀了Brads文章十幾次或更多,並且沒有點擊。 –