我在这里有点不知所措......我遇到了剑道和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)中。
我不确定是否有人知道这个奇怪的问题,但我想不出它是怎么回事或如何解决这个问题。
旁注:我有一个下拉列表也会这样做,在我初始化之后它将很好地定义,但有时只是。验证器问题一直在发生。
答案 0 :(得分:1)
这可能更像是一个jQuery版本问题而不是Internet Explorer(IE)本身的问题。确保Kendo在IE中可以在运行时访问预期版本的jQuery。
答案 1 :(得分:1)
事实证明这是Internet Explorer和Salesforce Lightning Components的一个问题。
Salesforce闪电组件应该是一个自包含的实体,您可以在组件中加载所需的所有脚本,这包括一个JQuery脚本。在现代浏览器中,这很好用。在Internet Explorer中...... Lightning组件中的脚本泄漏到主页面上,因此我加载了两个JQuery,最终导致了问题。
现在我知道了这个问题,这可能会更好地在Salesforce堆栈交换中提供,但我不知道IE是不正确处理的闪电组件,我认为这只是一些IE / Kendo问题。