我有点不知所措... Kendo和Internet Explorer出现问题。
我有一个设置的验证器,我已逐步完成代码,DOM中存在<div id="validatorCheck">{content}</div>
。当用户打开我的编辑器时,我将初始化验证器。
$('#validatorCheck').kendoValidator({
//validate: function(e) {
//},
validateInput: function(e) {
if(e.valid == false && scrolledToElement == false){
scrolledToElement = true;
$('#externalEditor').animate({
scrollTop: e.input.offset().top
}, 300, function() {
//Callback after animation
});
}
},
rules: {
endDateValidation: function(e) {
//console.log(e);
if (e.is('[data-role=datetimepicker]') && e[0].id == 'endTimeInput') {
var endTimeValid = $('#endTimeInput').data('kendoDateTimePicker');
var startTimeValid = $('#startTimeInput').data('kendoDateTimePicker');
if (endTimeValid.value() < startTimeValid.value()) {
return false;
}
}
return true;
},
autoCompleteValidation: function(e){
if(e.is('[data-role=autocomplete]')){
var autoCompleteComp = e.data('kendoAutoComplete');
if(autoCompleteComp != undefined){
if(e[0].attributes.hasOwnProperty('required') && (autoCompleteComp.value() == '' || autoCompleteComp.value() == null)){
return false;
}
}
}
return true;
}
},
messages: {
//hasItems: 'Owner Must Be Selected'
endDateValidation: 'End Time Must Be Greater Than Start Time',
}
});
在上面的代码之后,当我逐步执行此操作时,我看着
$('#validatorCheck').data('kendoValidator')
并将其初始化。然后,当用户点击“保存”按钮时,我致电:$('#validatorCheck').data('kendoValidator').validate()
,但是,现在$('#validatorCheck').data('kendoValidator')
是未定义的,并且崩溃。编辑器从未关闭,没有任何破坏,它仍然在DOM中,带有验证器的数据角色,它是从我在上面的代码中的初始化获得的,但未定义。
拼写是正确的,我什至尝试重新下载我的KendoUI版本以获取新文件等,但是它无济于事。
Chrome,Firefox,Edge等...都可以正常工作。仅在IE(当前在版本11)中会发生此问题。
我不确定是否有人对这个奇怪的问题一无所知,但是我无法想像这是怎么回事或如何解决。
旁注:我也有一个下拉列表,也可以这样做,在我初始化它之后,它的定义是不确定的,但有时是这样。验证器问题一直在发生。
最佳答案
从本质上讲,这可能是jQuery版本问题,而不是Internet Explorer(IE)问题。确保Kendo在IE的运行时可以访问所需的jQuery版本。
关于javascript - Kendo小部件/验证器在IE中未定义?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49819861/