上传文件时,DOJO 1.8 / dojo / request / iframe正在删除<form> </form>

时间:2012-09-01 05:45:39

标签: file-upload dojo

我在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代码。

2 个答案:

答案 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。