我在我的MVC3应用程序中使用uploadify
fileupload控件。
我看到了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
时,会弹出弹出窗口。
如何解决这个问题?这是怎么发生的?
答案 0 :(得分:0)
您很可能必须使用live()函数将click处理程序绑定到按钮,或者您必须在对话框的div上调用dialog()之后绑定单击处理程序
此外,您使用“btnImg”作为ID,但我在上面的HTML中没有看到任何使用它作为id的内容。这是一个错字,还是我们只是没有看到
答案 1 :(得分: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没有嵌套在表单标记中,jQuery将忽略窗口上载。