我有一个表单,使用了kendo-ui numericTextBox
@Html.LabelFor(p => p.Cost)
@Html.TextBoxFor(p => p.Cost, new { @autocomplete = "off" })
我将其绑定,并使用jQuery验证插件使其工作,我设置了以下设置:
$("#Cost").kendoNumericTextBox({
format: "c",
min: 0,
decimals: 2
});
$.validator.setDefaults({
ignore: [],
highlight: function (element, errorClass) {
element = $(element);
if (element.hasClass("k-input")) {
element.closest(".k-widget").addClass(errorClass);
} else {
element.addClass(errorClass);
}
},
unhighlight: function (element, errorClass) {
element = $(element);
if (element.hasClass("k-input")) {
element.closest(".k-widget").removeClass(errorClass);
} else {
element.removeClass(errorClass);
}
}
});
当我尝试提交表单并且“成本”输入无效时,它会正确地添加errorClass(在“.k-widget”包装器上)。
问题在于,如果我再次按提交按钮,那么“kendo-ui”元素就会简单地消失(带有“style =”display:none;“”)。
我不知道是什么触发了这个问题。我已经看到,如果我将errorClass更改为除“input-validation-error”之外的其他内容,则“kendo-ui”小部件仍然可见。
这个问题只出现在“kendo-ui”控件中,而不是标准的HTML输入中。
我做错了什么吗?
.validate()
声明在哪里? - Sparky