试图使一个dojo小部件,将创建一个窗体
Trying to make a dojo widget that will create a form
我想让它,所以我把data-dojo-type="js/widget/SAUploadForm"为上传小部件,它将在那里生成一个表单。不知道我现在错了什么,因为页面上没有生成表单。
<html>
<head>
<title>Upload</title>
<script>
dojoConfig = {
async : true,
parseOnLoad : false
}
</script>
<script src="js/dojo/dojo.js"></script>
</head>
<body>
<div>
<h1 align="center">Upload</h1>
<br />
<div data-dojo-type="js/widget/SAUploadForm"></div>
</div>
</body>
</html>
我的小部件文件:SAUploadForm.js
define(["dojo/_base/declare", "dojo/dom-construct", "dojo/parser", "dijit/_WidgetBase", "dijit/_TemplatedMixin"],
function(declare, domConstruct, parser, ready, _WidgetBase, _TemplatedMixin) {
decalre("SAUploadForm", [_WidgetBase, _TemplatedMixin], {
formString: '<form method="post" enctype="multipart/form-data" action="/webapp/upload">' +
'<table>' +
'<tr>' +
'<td>File:</td>' +
'<td><input type="file" name="file" value="Browse" accept=".sub" /></td>' +
'</tr><tr>' +
'<td colspan="2"><button type="submit">Upload</button></td>' +
'</tr>' +
'</table></form>',
buildRendering: function() {
this.domNode.innerHTML = formString;
}
});
ready(function() {
parser.parse();
});
});
位于js/widget/
这里有太多错误的东西了……
- 有一个错字:
decalre
而不是declare
- 你应该使用
templateString
而不是你自定义的formString
- 你必须要求
js/widget/SAUploadForm
如果你想让解析器知道它 - 你声明
ready
,但你不需要它 - 返回
declare
的结果
应该这样做:
(注意:代码片段不能工作,因为代码需要将小部件放入单独的文件中)
//This goes into js/widget/SAUploadForm.js
define(["dojo/_base/declare", "dojo/dom-construct", "dijit/_WidgetBase", "dijit/_TemplatedMixin"],
function(declare, domConstruct, _WidgetBase, _TemplatedMixin) {
return declare("js/widget/SAUploadForm", [_WidgetBase, _TemplatedMixin], {
templateString: '<form method="post" enctype="multipart/form-data" action="/webapp/upload">' +
'<table>' +
'<tr>' +
'<td>File:</td>' +
'<td><input type="file" name="file" value="Browse" accept=".sub" /></td>' +
'</tr><tr>' +
'<td colspan="2"><button type="submit">Upload</button></td>' +
'</tr>' +
'</table></form>'
});
});
//this goes into the index.html file
require(["dojo/parser", "dojo/domReady!", "js/widget/SAUploadForm"], function(parser) {
parser.parse();
});
<script>
dojoConfig = {
async : true,
parseOnLoad : false
}
</script>
<script src="//ajax.googleapis.com/ajax/libs/dojo/1.10.4/dojo/dojo.js"></script>
<div>
<div data-dojo-type="js/widget/SAUploadForm"></div>
</div>
相关文章:
- 创建一个类似链接的按钮,并通过Javascript函数打开一个新的弹出窗口
- 从javascript创建一个列表
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- Kendo:我该如何在树视图中创建一个递归的hieiarchy
- 从html创建一个指令,该指令按类名应用函数
- 如何为jQuery屏蔽输入插件创建一个允许字母数字、空格和重音字符的掩码
- 我想在AngularJS应用程序中创建一个输入数字框,用户不应该在该框上键入十进制数字.(一个整数输入框)
- 是否可以使用JavaScript/AAJAX在客户端创建一个文件
- 在创建对象后附加一个jquery事件
- 如何创建一个“;表单弹出框“;在chrome中右键单击时位于突出显示的单词上方
- 使用AngularJS Directive WHITOUT$scope创建一个动态html元素
- 创建一个循环来简化HTML和CSS代码
- 如何创建更好的方式来维护基于我的代码访问的最后一个页面
- 在javascript中的xml中创建一个链接
- 尝试创建一个具有z-index的堆叠菜单'使用HTML5/CSS3/JS
- 创建一个方法,通过一个窗口进行迭代并获取Titanium中的所有控件
- JavaScript 将 ID 属性添加到另一个创建的元素
- 如何从退出一个创建新的json对象
- 做“_"有一个创建键的快捷方式=>值对象
- 我如何得到一个创建的元素(按钮)来运行一个函数