Tôi có một hình thức trong đó sử dụng một kendo-ui numericTextBox
jquery validate ẩn điều khiển kendo-ui
@Html.LabelFor(p => p.Cost)
@Html.TextBoxFor(p => p.Cost, new { @autocomplete = "off" })
tôi ràng buộc nó, sau đó, để làm cho nó làm việc với plugin jquery validate, tôi thiết lập các cài đặt sau:
$("#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);
}
}
});
Khi tôi cố gắng gửi biểu mẫu và đầu vào Cost
không hợp lệ, nó thêm đúng ErrorClass (trên .k-widget
trình bao bọc).
Vấn đề là nếu tôi nhấn nút gửi lần nữa, thì phần tử kendo-ui
sẽ biến mất (với style="display: none;"
).
Tôi không biết điều gì đang kích hoạt tính năng này. Tôi đã thấy rằng nếu tôi thay đổi errorClass thành một cái gì đó khác ngoài input-validation-error
, thì tiện ích kendo-ui
vẫn hiển thị.
Sự cố này chỉ xảy ra với các điều khiển kendo-ui
, không phải với các đầu vào html chuẩn.
Tôi đang làm điều gì đó sai?
Bạn chưa hiển thị đủ mã để sao chép bất kỳ thứ gì. HTML được hiển thị ở đâu trong biểu mẫu? '.validate()' được khai báo ở đâu? – Sparky
@RaraituL Bạn đã từng đưa ra giải pháp cho điều này chưa? Tôi đang gặp vấn đề tương tự. – aw04