我有点不知所措... 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/

10-11 06:17