我最近有一個問題,關於getting checkbox validation working在MVC項目中的客戶端。這個問題被成功回答了,但又提出了另一個問題。MVC添加方法到jquery.validate.unobtrusive.js
爲了讓我的複選框的驗證工作,我需要的JavaScript以下位直接添加到jquery.validate.unobtrusive.js:
$jQval.addMethod("mustbetrue", function (value, element, param) {
// check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});
adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});
這個偉大的工作,但我不高興不必以防萬一Microsoft或驗證插件男孩將來更新該文件。如果我還沒有在項目中工作,這個文件可能會被覆蓋,而沒有人意識到它已被定製。
所以考慮到這一點我嘗試添加到一個外部JavaScript文件是:
$.validator.addMethod("mustbetrue", function (value, element, param) {
// check if dependency is met
if (!this.depend(param, element))
return "dependency-mismatch";
return element.checked;
});
$.validator.unobtrusive.adapters.add("mustbetrue", function (options) {
setValidationValues(options, "mustbetrue", true);
});
不幸的是,現在我的複選框的客戶端腳本不運行。任何人都可以看到我做錯了什麼?
在此先感謝
小號
再次感謝!儘管我很清楚你在說什麼,但它理解它應該可以工作,只要我從jquery.validate.unobtrusive.js中添加'addMethod'和'add'並將上面的任何組合放到另一箇中js文件停止工作!我甚至將consol.log放在jquery.validate.unobtrusive.js文件的ath addBool方法中,以檢查「mustbetrue」是否正在註冊,並且是!正如我所說奇怪! – Sniffer
我認爲這是非常重要的說,你需要在您的標記爲上述解決方案的工作: –
您可以簡化添加您的不顯眼的適配器:$ .validator .unobtrusive.adapters.addBool( 「mustbetrue」);只要您在文檔之外添加新的驗證方法和適配器,您也不需要調用分析。 –