Javascript Dojo对话框-如何保存对话框内容

Javascript Dojo对话框-如何保存对话框内容,javascript,dojo,Javascript,Dojo,我是dojo新手,我一直在学习这里提到的教程 我不知道如何捕获对话框中输入的数据 <script type="text/javascript"> require(["dojo/ready", "dijit/Dialog", "dijit/form/Button"], function(ready, Dialog, Button){ ready(function(){ var myDialog = new Dialog({ t

我是dojo新手,我一直在学习这里提到的教程

我不知道如何捕获对话框中输入的数据

<script type="text/javascript">
 require(["dojo/ready", "dijit/Dialog", "dijit/form/Button"], 

  function(ready, Dialog, Button){
    ready(function(){
        var myDialog = new Dialog({
            title: "Add",
            style: "width: 600px"
        });

        var myButton = new Button({
            onClick: function(){
                myDialog.set("content", getDialog());
                myDialog.show();
            }
        }, "progbutton");
    });
});

function getDialog(){
  return document.getElementById('add-link-dialog-container').innerHTML;
}


</script>

require([“dojo/ready”、“dijit/Dialog”、“dijit/form/Button”],
功能(就绪、对话框、按钮){
就绪(函数(){
var myDialog=新建对话框({
标题:“添加”,
样式:“宽度:600px”
});
var myButton=新按钮({
onClick:function(){
set(“content”,getDialog());
myDialog.show();
}
},“程序按钮”);
});
});
函数getDialog(){
return document.getElementById('add-link-dialog-container').innerHTML;
}
Html:


姓名:
地址:
添加
取消
新增
对话框确实会弹出。但是如何捕获字段中输入的数据?
有更好的方法吗?

如果正在打开对话框,那么您应该能够使用模块检索表单字段(以及值/数据)

例如:

require([ "dijit/registry" ], function(registry) {
    registry.byId("ok").on("click", function() {
        registry.byId("address").get("value"); // Will return the "address" value
    });
});
myDialog.on("load", function() {
    registry.byId("ok").on("click", function() {
        registry.byId("address").get("value"); // Will return the "address" value
    });
});
当然,问题是,何时将事件处理程序添加到按钮中。您必须等待对话框加载,直到可以向其添加事件处理程序。好消息是,
dijit/Dialog
有一个名为的事件,我们可以使用它

例如:

require([ "dijit/registry" ], function(registry) {
    registry.byId("ok").on("click", function() {
        registry.byId("address").get("value"); // Will return the "address" value
    });
});
myDialog.on("load", function() {
    registry.byId("ok").on("click", function() {
        registry.byId("address").get("value"); // Will return the "address" value
    });
});

但是,如果您对提交所有表单数据感兴趣,您应该看看
dijit/form/form
小部件,它允许您获取/设置表单值、验证表单并提交表单。

工作非常完美。谢谢:)