Javascript Dojo-输入字段未附加到网格

Javascript Dojo-输入字段未附加到网格,javascript,dojo,Javascript,Dojo,我使用dojo创建了一个网格。当我输入值并单击“添加行”按钮时,我有一个带有输入字段的表单。输入字段不会附加到网格中。删除选项工作正常,但添加行不工作。我已经附上了JSFIDLE的链接,请参考更多 form = new Form({ onSubmit: function(evt) { evt.preventDefault(); var formValue = this.get("value"); dataStore.newItem(form

我使用dojo创建了一个网格。当我输入值并单击“添加行”按钮时,我有一个带有输入字段的表单。输入字段不会附加到网格中。删除选项工作正常,但添加行不工作。我已经附上了JSFIDLE的链接,请参考更多

form = new Form({
    onSubmit: function(evt) {
        evt.preventDefault();
        var formValue = this.get("value");
        dataStore.newItem(formValue);
    }
}, "formContainer");
form.startup();
});

您的HTML代码存在一些问题。不需要
表单
元素。您只需要一个
div
并将
dijit.form.form
放在
div
元素中。而且,
submit
按钮需要位于
div
内。它将自动被触发

请参阅更新的小提琴:


还有一件事,要向存储添加数据,您必须向
newItem
提供一个id。存储区将不接受没有id的元素。

您的HTML代码存在一些问题。不需要
表单
元素。您只需要一个
div
并将
dijit.form.form
放在
div
元素中。而且,
submit
按钮需要位于
div
内。它将自动被触发

请参阅更新的小提琴:


还有一件事,要向存储添加数据,您必须向
newItem
提供一个id。商店不会接受没有id的元素。

完全同意@Himanshu。
你的HTML很奇怪。
如果要使用
submit
按钮,必须将其放入
元素中

同样,正如@Himanshu所说,您必须提供
id
才能使用
newItem

请参阅以下工作JSFIDLE示例:

为了更好地记录,这里有一个工作片段。 (忽略脚本错误,这些是安全警告,并在整个页面中运行它。否则,脚本错误位于文本框上方)

需要([
“dojo/_base/lang”,
“dojox/grid/DataGrid”,
'dojo/data/ItemFileWriteStore',
“dojo/dom”,
“dijit/form/Button”,
“dojo/dom类”,
“dojo/dom构造”,
“dojo/on”,
“dijit/form/form”,
“dijit/form/TextBox”,
“dojo/store/Memory”,
“dojo/data/ObjectStore”,
“dojo/request”,
“dijit/注册表”,
“dojo/domReady!”,
“dojox/grid/_CheckBoxSelector”
],函数(lang、DataGrid、ItemFileWriteStore、dom、按钮、domClass、domConstruct、on、窗体、文本框、内存、对象存储、请求、注册表){
风险值数据={
标识符:“id”,
项目:[]
};
变量数据列表=[{
fname:“男孩”,
名字:“梅尔”,
电子邮件:“boy@mayer.com",
总数:54526
}, {
fname:“保罗”,
名字:“陶克”,
电子邮件:“paul@taucker.com",
人数:12345
}, {
fname:“史蒂文”,
名称:“Spil”,
电子邮件:“steven@spil.com",
总数:87654
}, {
fname:“计算机”,
名称:“技术”,
电子邮件:“comp@tech.com",
总数:45158
}, {
fname:“用户”,
lname:“接口”,
电子邮件:“user@inter.in",
总数:94979
}];
var rows=数据\列表长度;
对于(i=0,l=rows;i
*,
th{
字体:14px'verdana',无衬线;
}
运输署{
字体:13px'verdana',无衬线;
}
#gridDiv{
高度:14em;
边缘底部:15px;
宽度:42em;
}

添加行

完全同意@Himanshu.
你的HTML很奇怪。
如果要使用
submit
按钮,必须将其放入
元素中

同样,正如@Himanshu所说,您必须提供
id
才能使用
newItem

请参阅以下工作JSFIDLE示例:

为了更好地记录,这里有一个工作片段。 (忽略脚本错误,这些是安全警告,并在整个页面中运行它。否则,脚本错误位于文本框上方)

需要([
“dojo/_base/lang”,
“dojox/grid/DataGrid”,
'dojo/data/ItemFileWriteStore',
“dojo/dom”,
“dijit/form/Button”,
“dojo/dom类”,
“dojo/dom构造”,
“dojo/on”,
“dijit/form/form”,
“dijit/form/TextBox”,
“d