我在DOJO 1.8.0下看到了一个非常奇怪的行为。我正在尝试异步上传文件。该文件上传得很好,我按预期获得了有效负载,但是当点击提交按钮时,标签及其间的所有内容都莫名其妙地已删除!它消失了。 (注意:我已将此测试分离到测试页面,因此没有任何其他方法可以解释它。您正在查看整个代码。)
require(['dojox/form/Uploader',
"dojo/request/iframe",'dojo/dom','dojo/on',
'dojox/form/uploader/plugins/IFrame', 'dojo/domReady!'],
function(Uploader,iframe,dom,on){
on(dom.byId("myButton"), "click", function(){
iframe.post("UploadFile.php",{
form: dom.byId("myForm"),
handleAs: "json"
}).then(function(data){
console.log(data);
}, function(err){}
);
});
<form method="post" id="myForm" enctype="multipart/form-data" >
<input name="uploadedfile" type="file" data-dojo-type="dojox.form.Uploader"
label="Select Some Files" id="uploader" />
<input id="myButton" type="button" value="Submit" />
</form>
任何有DOJO 1.8经验的人的想法?我一直在使用/ dojo / io / iframe,版本1.6到1.7。这开始只发生在1.8使用new / dojo / request / iframe代码。
答案 0 :(得分:0)
请参阅http://jsfiddle.net/seeds/XD4Dc/1/
表单元素设置为具有dojo注入iframe的目标。然后表格变得像'dijitHidden',abs位置-1000上/左。不明白为什么tbh。 小提琴中有一个修复,添加到你的回调中:
with(dom.byId("myForm").style) {
position = "";
left = "";
top = "";
}
答案 1 :(得分:0)
我把这个问题带到了DOJO-Interest小组,发现它是DOJO 1.8.0的错误。它将在即将发布的1.8.1版本中修复。
http://bugs.dojotoolkit.org/ticket/15939
来自错误报告:
表单没有被“吃掉”,而是由于一些错误的逻辑检查表单是否在DOM中,因此位置被设置在其上并移出视口。这已经修复,应该在1.8.1。