0

我在 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 经验的人有什么想法吗?我在 1.6 到 1.7 版本中一直使用 /dojo/io/iframe。这仅在 1.8 中使用新的 /dojo/request/iframe 代码开始发生。

4

2 回答 2

0

http://jsfiddle.net/seeds/XD4Dc/1/

表单元素设置为具有 dojo 的注入 iframe 的目标。然后表格变得像'dijitHidden',abs 位置-1000 顶部/左侧。不明白为什么。小提琴中有一个修复,添加到您的回调中:

with(dom.byId("myForm").style) {
       position = "";
       left = "";
       top = "";
}
于 2012-09-03T09:01:08.897 回答
0

我将此问题提交给 DOJO-Interest 小组,发现它是 DOJO 1.8.0 的错误。它将在即将发布的 1.8.1 版本中修复。

http://bugs.dojotoolkit.org/ticket/15939

从错误报告中:

表单没有被“吃掉”,而是由于一些错误的逻辑检查表单是否在 DOM 中,位置被设置在其上并移出视口。这已修复,应该在 1.8.1 中。

于 2012-09-12T15:28:50.547 回答