javascript - 如何在 Kendo UI 编辑器中创建浏览文件按钮

标签 javascript jquery kendo-ui

我正在尝试在 Kendo UI 编辑器 上创建一个具有浏览文件功能的自定义按钮。

enter image description here

我的工具栏中有这一行:

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

这似乎不起作用。下面的代码基本上是我在 Kendo 编辑器 中尝试做的事情。

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/>

正在寻求帮助以通过一键点击来实现此功能?

最佳答案

有两种方法可以做到这一点。第一个是使用自定义模板,就像您进行的设置一样。但是,我不确定什么是“events.toolbar_click”。以下是让它发挥作用的方法:

方法一

<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

关于javascript - 如何在 Kendo UI 编辑器中创建浏览文件按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51426281/

相关文章:

javascript - 如何声明一个 Map<T, K> ,其中 T 应该是可变参数类而 K 应该是 T 的实例?

javascript - 如何在单击时将新的输入行添加到表中?

jquery - Google App Engine + jQuery Ajax = 405 方法不允许

javascript - 为什么 jQuery .click() 在此 <a> 标记上使用时不会导致回发?

javascript - window.load 上单独的 javascript 文件内的引用函数

javascript - kendo-ui:网格中带有三元运算符的自定义模板

javascript - Kendo UI Datepicker 禁用输入

javascript - 在html中沿着可点击网格的边界放置数字

javascript - 我如何在 Javascript 中声明类?

kendo-ui - 带有 Auth Header 的 Kendo 网格的 Kendo Vue 数据源