【发布时间】:2013-05-19 10:08:11
【问题描述】:
我有一个使用kendo-ui numericTextBox的表单
@Html.LabelFor(p => p.Cost)
@Html.TextBoxFor(p => p.Cost, new { @autocomplete = "off" })
然后,我绑定它,使其与 jquery validate 插件一起使用,我设置了以下设置:
$("#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);
}
}
});
当我尝试提交表单并且Cost 输入无效时,它会正确添加errorClass(在.k-widget 包装器上)。
问题是,如果我再次按下提交按钮,kendo-ui 元素就会消失(style="display: none;")。
我不知道是什么触发了这个。我已经看到,如果我将 errorClass 更改为 input-validation-error 以外的其他内容,则 kendo-ui 小部件仍然可见。
此问题仅发生在 kendo-ui 控件中,标准 html 输入也不发生。
我做错了什么?
【问题讨论】:
-
您没有显示足够的代码来重现任何内容。表单的渲染 HTML 在哪里?
.validate()声明在哪里? -
@RaraituL 你有没有想过解决这个问题?我也有同样的问题。
标签: jquery jquery-validate kendo-ui