Как создать кнопку просмотра файла в Kendo UI Editor

Я пытаюсь создать настраиваемую кнопку на Редактор пользовательского интерфейса Kendo с функцией просмотра файлов.

Как создать кнопку просмотра файла в Kendo UI Editor

У меня на панели инструментов есть такая строка:

{
 name: "Add",
 template: '<a class = "k-button" id = "popupbutton"   onclick = " events.toolbar_click(\'theFile\')">Command</a><input type = "file" id = "theFile" hidden/> ',
}

Похоже, это не работает. И приведенный ниже код - это то, что я в основном пытаюсь сделать, но в Редактор кендо.

function performClick(elemId) {
  var elem = document.getElementById(elemId);
  if (elem && document.createEvent) {
    var evt = document.createEvent("MouseEvents");
    evt.initEvent("click", true, false);
    elem.dispatchEvent(evt);
  }
}
 
<a href = "#" onclick = "performClick('theFile');">Open file dialog</a>
<input type = "file" id = "theFile" hidden/>

Нужна помощь, чтобы сделать эту функцию нажатием одной кнопки?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
0
460
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Это можно сделать двумя способами. Первый - с настраиваемым шаблоном, как и у вас. Однако я не уверен, что такое «events.toolbar_click». Вот как заставить его работать:

Способ 1

<script>
          function performClick(elemId) {
              var elem = document.getElementById(elemId);
              if (elem && document.createEvent) {
                var evt = document.createEvent("MouseEvents");
                evt.initEvent("click", true, false);
                elem.dispatchEvent(evt);
              }
          }

          $(document).ready(function() {
              $("#toolbar").kendoToolBar({
                  items: [
                    { name: "Add", type: "button",
                      text: "File", template: '<a class = "k-button" id = "popupbutton" onclick = "performClick(\'theFile\')">File Command 1</a><input type = "file" id = "theFile" hidden/> '} ]
              });
          });
</script>

Другой способ сделать это - использовать обработчик событий кнопок панели инструментов.

Способ 2

<input type = "file" id = "theFile" hidden/>
<script>
          function fileClickEventHandler(){
            performClick('theFile')
          }

          function performClick(elemId) {
              var elem = document.getElementById(elemId);
              if (elem && document.createEvent) {
                var evt = document.createEvent("MouseEvents");
                evt.initEvent("click", true, false);
                elem.dispatchEvent(evt);
              }
          }

          $(document).ready(function() {
              $("#toolbar").kendoToolBar({
                  items: [
                      { type: "button", text: "File Command 2", click: fileClickEventHandler },
                  ]
              });
          });
</script>

Вы можете увидеть оба примера, работающие здесь: https://dojo.telerik.com/eLUbiXAF

Отличный пример! Думаю, я ошибся со своим вопросом. На самом деле это не панель инструментов, это редактор пользовательского интерфейса Kendo. Скрытый параметр у меня в редакторе не работает. и если я показываю: none, var elem = document.getElementById (elemId) возвращает undefined, потому что он не может видеть форму ввода

Namig Ismayilov 20.07.2018 16:20

Разве вы не можете поместить элемент ввода за пределы редактора Kendo?

Orilux 20.07.2018 16:23

Я просто сделал это и скрыл это с помощью JQuery. Выполняет работу на данный момент. Спасибо

Namig Ismayilov 20.07.2018 16:33

Другие вопросы по теме