我有一個帶有窗體的一些視圖的ASP.NET項目。我想更改輸入驗證的觸發器。此代碼用於在啓動時觸發驗證器並且不會失焦。缺少ASP.NET Validator
$(document).ready(function() {
var $validatr = $('form').data('validator');
var settngs = $validatr.settings;
settngs.onkeyup = function (element, eventType) {
if (!$validatr.element(element))
{
$(this.currentForm).triggerHandler("invalid-form", [this]);
}
};
settngs.onfocusout = false;
});
問題
在某些觀點我得到這個錯誤:
TypeError: $validatr is undefined, var settngs = $validatr.settings;
和驗證錯誤只出現失焦。 我試圖讓驗證也與此代碼,但也失敗了:
var $validatr = $('form').validate()
控制器,模型和視圖幾乎相同。只是輸入名稱改變。
UPDATE 如果我用這個代碼:
$(document).ready(function() {
var $validatr = $('form').validate();
var settngs = $validatr.settings;
console.log('settings:'); //I get an output
console.log(settngs); //I get an output
settngs.onkeyup = function (element, eventType) {
console.log(element); //I do not get any message here
console.log(eventType); //I do not get any message here
if (!$validatr.element(element)) {
console.log('if not validator');
$(this.currentForm).triggerHandler("invalid-form", [this]);
}
else {
console.log('else not validator');
}
};
// onload initial validation
$("form").validate().elements().each(function() {
if (!$validatr.element($(this))) {
console.log($(this)[0].name + ': initial if not validator');
$(this.currentForm).triggerHandler("invalid-form", [this]);
}
});
});
這是設置返回到控制檯:
errorClass:"error"
errorContainer:Object[]
errorElement:"label"
errorLabelContainer:Object[]
focusCleanup:false
focusInvalid:true
groups:Object:{}
ignore:":hidden"
ignoreTitle:false
messages:Object:{}
onsubmit:true
rules:Object:{}
validClass:"valid"
highlight:function(element,:errorClass,:validClass)
onclick:function(element)
onfocusin:function(element)
onfocusout:function(element)
onkeyup:function(element,:eventType)
unhighlight:function(element,:errorClass,:validClass)
SOLUTION
在年底這是解決方案: MVC 5 Losing validator
我相信你已經在下面的[主題]閱讀(http://stackoverflow.com/questions/33796001/typeerror-validator-is-undefined-in-jquery-validate-js)。 '$('form')。data('validator')'將得到驗證器,如果你已經正確地初始化了jquery和不顯眼的驗證。如果您仍然遇到問題,請發佈更多代碼(包括佈局頁面等) – CrnaStena
最後,這是解決方案。 http://stackoverflow.com/questions/35844505/mvc-5-losing-validator/35845314#35845314 – DJack
太好了。所以這個問題與頁面上的多個表單有關,並縮小了選擇器來選擇正確的表單。感謝更新。 – CrnaStena