Jquery 单击按钮打开剑道提示自定义对话框

Jquery 单击按钮打开剑道提示自定义对话框,jquery,kendo-ui,dialog,prompt,Jquery,Kendo Ui,Dialog,Prompt,我曾试图拼凑谷歌搜索中的一些信息,但我找不到一个明确的答案来解释为什么页面刷新时剑道提示只起一次作用。下面是一个简单的脚本,它基于Telerik提供的一个示例,但我对它进行了修改,允许通过单击按钮触发提示。似乎在单击之后,无法再访问提示符div,但我不明白为什么。有人知道答案吗 <!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <title>Kendo UI Sn

我曾试图拼凑谷歌搜索中的一些信息,但我找不到一个明确的答案来解释为什么页面刷新时剑道提示只起一次作用。下面是一个简单的脚本,它基于Telerik提供的一个示例,但我对它进行了修改,允许通过单击按钮触发提示。似乎在单击之后,无法再访问提示符div,但我不明白为什么。有人知道答案吗

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Kendo UI Snippet</title>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.common.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.rtl.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.silver.min.css"/>
    <link rel="stylesheet" href="https://kendo.cdn.telerik.com/2017.3.1026/styles/kendo.mobile.all.min.css"/>

    <script src="https://code.jquery.com/jquery-1.12.4.min.js"></script>
    <script src="https://kendo.cdn.telerik.com/2017.3.1026/js/kendo.all.min.js"></script>
</head>
<body>

<div id="prompt"></div>
<div><button class="k-button" onclick="onClk()">Click Here</button></div>
<script>
  function onClk() {
      $("#prompt").kendoPrompt({
      content: "Prompt text",
     value: "Default input text",
    messages:{
      okText: "OK"
    }
    }).data("kendoPrompt").result.done(function(data){
        console.log("User accepted with text: " + data);
    })
    .fail(function(data){
        console.log("User rejected with text: " + data);
    });
   }
</script>
</body>
</html>

剑道UI片段
点击这里
函数onClk(){
$(“#提示”).kendoPrompt({
内容:“提示文本”,
值:“默认输入文本”,
信息:{
OK文本:“OK”
}
}).data(“kendoPrompt”).result.done(函数(数据){
console.log(“用户接受文本:“+数据”);
})
.失败(功能(数据){
console.log(“用户被拒绝,文本:“+数据”);
});
}

这是因为您使用的是针对容器的自定义提示,而不是普通的警报和提示对话框,并且在第一次打开它之后,一旦您单击
确定
取消
,容器
div
提示将与对话框一起从文档中删除,当您再次单击按钮打开它时,它根本找不到要绑定的元素
kendoprompt
,因此它在调用
.data()
时抛出错误。理想情况下,如果您希望以这种方式使用它,您应该在调用
javascript
中的函数并将其附加到正文之前创建容器
div
,更改代码以匹配演示中的以下代码。只需匹配javascript并尝试为函数使用有意义的名称

希望能有帮助

函数myPrompt(){
$(“#提示”).kendoPrompt({
内容:“提示文本”,
值:“默认输入文本”,
信息:{
OK文本:“OK”
}
}).data(“kendoPrompt”).result.done(函数(数据){
console.log(“用户接受文本:“+数据”);
})
.失败(功能(数据){
console.log(“用户被拒绝,文本:“+数据”);
});
}
$(文档).ready(函数(){
$(“.k-button”)。在('click',function()上{
如果($(“#提示”)。长度<1){
var div=document.createElement('div');
div.setAttribute('id','prompt');
$('body')。追加(div);
}
myPrompt();
});
})

点击这里

刚刚为您发布了答案。如果它对你有效,请查看它。嘿@Paul如果这对你有效,你能选择正确的答案吗?这样其他有同样问题的人也会得到答案benefit@Muhammad你的回答是正确的。我在上个月的原始回复下面留下了一条评论。我不确定我还需要单击什么才能让其他人清楚地了解这一点。:)你只需要选择正确的选项,绿色的勾号。你只需要点击它就行了,谢谢。这就成功了。Javascript不是我的母语,它的一些怪癖也不是特别直观。