0
我使用VS 2010與MVC 3和不顯眼的驗證。我正在嘗試創建一個自定義範圍驗證程序,以包含輸入值可接受但意外的警告。 (我有工作的功能,通過使用ignore
選項的形式驗證的提交與wanings值)我需要一個自定義錯誤消息的jQuery自定義驗證器
不顯眼的部分是:
// The adapter to support ASP.NET MVC unobtrusive validation //
$.validator.unobtrusive.adapters.add('rangewithwarning', ['min', 'max', 'wmin', 'wmax', 'warning'],
function (options) {
options.rules['rangewithwarning'] = {
min: options.params.min,
max: options.params.max,
wmin: options.params.wmin,
wmax: options.params.wmax,
warning: options.params.warning
};
options.messages['rangewithwarning'] = options.message;
});
我已經在這似乎回落動態的錯誤消息廣泛的谷歌搜索以三種方法,但這些都不允許我顯示可選的錯誤消息。它們是:
返回錯誤消息
// The validator function $.validator.addMethod('rangewithwarning', function (value, element, params) { if (!value) { return true; // not testing 'is required' here! } var intValue = parseInt(value); // set logic here if (intValue >= params.wmin && intValue <= params.wmax) { // OK within both actual and range warning return true; } if (params.min <= intValue && intValue <= params.max) { // outside warning but within allowed range - show warning return params.warning; } return $.validator.messages.rangewithwarning;
});
使用showErrors
// The validator function $.validator.addMethod('rangewithwarning', function (value, element, params) { if (!value) { return true; // not testing 'is required' here! } var validator = this; var intValue = parseInt(value); // set logic here if (intValue >= params.wmin && intValue <= params.wmax) { // OK within both actual and range warning return true; } if (params.min <= intValue && intValue <= params.max) { // outside warning but within allowed range - show warning var errors = new Object(); errors[element.name] = params.warning; validator.showErrors(errors); } return false; });
返回從
messager
函數
無這些工作通過第二個步進時雖然表現出短暫然後覆蓋的可選的消息的附加參數。
我明顯錯過了一些明顯的東西,但看不到它是什麼。
在此先感謝。
還有一個想法 - 是否有可能在一個字段上有多個驗證器。在這種情況下,這可以分成一個範圍驗證器和一個自定義範圍驗證器? –