2014-02-16 92 views
4

我已經看過很多帖子,並且讓它在我添加以下內容時驗證我的字段。爲kendo UI元素添加jquery驗證

$.validator.setDefaults({ 
    ignore: [] 
}); 

我仍然缺少的是添加input-validation-error類來通知用戶的部分。它對我的其他輸入元素(非kendo)工作正常。我已經嘗試在$.validator.setDefaults中手動添加該類,但似乎沒有任何工作。

有沒有一個例子在那裏或有人得到它的工作?

我不確定我是這樣做的,但這是我試圖手動添加它。

$.validator.setDefaults({ 
    ignore: [], 
    errorClass: "input-validation-error", 
    errorElement: "input", 
    highlight: function (element, errorClass) { 
     $(element).addClass(errorClass) 
    }, 
    unhighlight: function (element, errorClass) { 
     $(element).removeClass(errorClass) 
    } 
}); 
+0

這個問題沒有意義。默認情況下,插件忽略所有隱藏的字段。設置'ignore:[]'只是禁用'ignore'選項。換句話說,'ignore:[]'允許隱藏字段被驗證,而不是被忽略。你的問題與隱藏的領域有什麼關係?你的_rendered_ HTML標記在哪裏? – Sparky

+0

@Sparky劍道和隱藏領域 - http://www.telerik.com/forums/mvc-unobtrusive-validation-doesn' -work – aw04

回答

7

我找到了一個基於this post的解決方案。基本上你需要做的是尋找父元素的input被包裹在事情是這樣的:

$.validator.setDefaults({ 
    ignore: [], 
    highlight: function (element, errorClass) { 
     element = $(element); 
     if (element.parent().hasClass("k-widget")) { 
      element.parent().addClass('input-validation-error'); 
     } else { 
      element.addClass('input-validation-error') 
     } 
    }, 
    unhighlight: function (element, errorClass) { 
     element = $(element); 
     if (element.parent().hasClass("k-widget")) { 
      element.parent().removeClass('input-validation-error'); 
     } else { 
      element.removeClass('input-validation-error') 
     } 
    } 
}); 

我建議任何人,雖然訪問我已鏈接到上述起飛下來在此之前的帖子特別的兔子洞,因爲它引入了另一個問題,只是爲了知道你正在進入什麼。除了被問到的問題之外,例外答案與這個問題更相關。