我是dojo的新手,我一直在关注这里提到的教程 http://dojotoolkit.org/reference-guide/1.7/dijit/Dialog.html
我不确定如何捕获在对话框中输入的数据
<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>
HTML:
<div id="add-link-dialog-container" style="display:none;">
<div>
<table class="dijitDialogPaneContentArea">
<tr>
<td><label for="name">Name:</label></td>
<td><input data-dojo-type="dijit/form/TextBox" name="name" id="name" value="Test"/></td>
</tr>
<tr>
<td><label for="address">Address:</label></td>
<td><input data-dojo-type="dijit/form/TextBox" name="address" id="address"/></td>
</tr>
</table>
<div class="dijitDialogPaneActionBar">
<button dojoType="dijit.form.Button" type="submit" id="ok">Add</button>
<button dojoType="dijit.form.Button" type="button" id="cancel">Cancel</button>
</div>
</div>
</div>
<button id="progbutton" type="button">Add New</button>
弹出对话框。但是如何捕获字段中输入的数据? 有没有更好的方法呢?
答案 0 :(得分:0)
如果正在打开对话框,那么您应该能够使用dijit/registry
模块来检索表单字段(以及您的值/数据)。
例如:
require([ "dijit/registry" ], function(registry) {
registry.byId("ok").on("click", function() {
registry.byId("address").get("value"); // Will return the "address" value
});
});
当然,问题是,您何时将onClick
事件处理程序添加到按钮中。您必须等到对话框加载,直到您可以向其添加事件处理程序。好的,dijit/Dialog
有一个名为onLoad
的事件我们可以使用。
例如:
myDialog.on("load", function() {
registry.byId("ok").on("click", function() {
registry.byId("address").get("value"); // Will return the "address" value
});
});
但是,如果您对提交所有表单数据感兴趣,则应该查看dijit/form/Form
小部件,它允许您获取/设置表单值,验证表单并提交表单