You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

KendoUI Alert点击确定按钮执行自定义操作的报错解决方法

KendoUI Alert点击确定执行自定义操作的解决方案

你遇到的then不是函数错误,是因为部分KendoUI版本中kendo.alert()并不返回Promise对象,因此无法通过.then()链式调用后续操作。以下是两种可行的实现方案:

方案一:使用KendoDialog组件(推荐)

直接使用更灵活的Dialog组件替代原生Alert,可直接配置确定按钮的点击回调,无需依赖DOM操作:

// 初始化自定义提示框并打开
$("#custom-alert").kendoDialog({
  title: "提示",
  content: "Hello ",
  actions: [
    {
      text: "确定",
      primary: true,
      action: function() {
        // 点击确定后执行自定义操作
        window.location = 'https://www.google.com/';
        return true; // 关闭对话框
      }
    }
  ]
}).data("kendoDialog").open();

方案二:监听Alert生成的Dialog事件

如果坚持使用kendo.alert(),可以通过监听其生成的Dialog组件的关闭事件或按钮点击事件来实现:

方式1:监听Dialog关闭事件

// 调用Alert
kendo.alert("Hello ");

// 延迟绑定事件(等待Alert的Dialog渲染完成)
setTimeout(function() {
  const dialog = $(".k-dialog").data("kendoDialog");
  dialog.bind("close", function() {
    // 执行自定义操作
    window.location = 'https://www.google.com/';
    // 解绑事件避免重复触发
    dialog.unbind("close");
  });
}, 100);

方式2:绑定确定按钮点击事件

kendo.alert("Hello ");

setTimeout(function() {
  // 定位Alert的确定按钮并绑定点击事件
  $(".k-dialog .k-primary").on("click", function() {
    window.location = 'https://www.google.com/';
    $(this).off("click");
  });
}, 100);

注意:使用定时器是因为kendo.alert()是异步渲染DOM元素,需要等待对话框生成后再绑定事件。

内容的提问来源于stack exchange,提问作者iDipa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.23 12:47:13