0

uploadify在我的 MVC3 应用程序中使用文件上传控件。

我看到了 jQuery Dialog 的非常奇怪的行为。

flash Browse在我的视图中使用一个按钮。单击该按钮时,它会显示所有目录以浏览和上传所选文件并被上传。

起初,我尝试过不使用 jQuery 对话框。它完美地工作并上传文件并能够取消所有浏览器中的文件。

当我使用容器在 jQuery 对话框中呈现时,Browse按钮显示在 中Firefox,但我无法单击该按钮,它在 IE 和 Chrome 中有效,但在 Chrome 中无法取消上传。

这是我的代码:

我认为的 HTML 代码:

<input type="button" id="btnImg"/>
    <div id="fileupload">
        <div style="clear: none;">
            File to Upload:
            <input type="file" name="file_upload" id="file_upload" style="padding-left: 50px;"/><hr />
        </div>
        <p style="text-align: right;">
            <input type="submit" id="selectimage" value="Ok" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only"/>
            <input type="submit" id="cancelimage" value="Cancel" class="ui-button ui-widget ui-state-default ui-corner-all ui-button-text-only" onclick="cancelupload();" />
        </p>
    </div>

Javascript代码:

$("#btnImg").click(function () {
    $("#fileupload").dialog({
        width: '511',
        height: '200',
        show: "blind",
        position: [300, 500]
    });
});

单击时btnImg,将弹出弹出窗口。

如何解决这个问题?这怎么发生的 ?

4

2 回答 2

0

您很可能必须使用 live() 函数将单击处理程序绑定到按钮,或者您必须在创建对话框的 div 上调用 dialog() 之后绑定单击处理程序。

此外,您使用“btnImg”作为 id,但我在上面的 HTML 中没有看到任何使用它作为 id 的内容。这是一个错字,还是我们只是没有看到

于 2012-12-17T14:12:20.893 回答
0

我可以解决我的问题。

这是它的解决方案。

$("#btnImg").click(function () {
            $("#fileupload").css("visibility", "visible");
            $("#fileupload").dialog({
                width: '511',
                height: '200',
                modal:true,
                //show: "blind",
                position: [300, 500],
                open: function (type, data) {
                    $(this).parent().appendTo("form");
                }
            });
        });

问题是我的 div 不在form标签内。因此,如果没有嵌套在表单标签中,jQuery 会忽略窗口上传。

于 2012-12-18T09:18:01.613 回答