【发布时间】:2011-04-28 00:12:05
【问题描述】:
为了在表单 type="file" 上传时拥有完整的 UI 样式,我有一个伪表单字段 (#fileName)、浏览、上传按钮。我在下面有一个隐藏的表单,其中包含实际的表单字段(#fileAttach)、浏览和上传按钮。我试图触发它,当用户单击浏览时,它会触发实际的浏览按钮,然后获取实际输入字段的文件路径的值并在伪输入字段上填充文件。
browse = function () {
$("#fileAttach").click();
var file = $("#fileAttach").val();
$("#fileName").val(file);
}
它适用于 Safari 和 IE。但是,在 Chrome 和 Firefox 中,它似乎在用户选择文件后停止执行。文件名不会传递到伪表单字段。但是,如果我再次触发 browse(),它会立即将第一个文件路径填充到伪表单字段,然后生成一个新的文件浏览窗口。 Chrome/FF 似乎只执行函数的第一行并暂停。如果再次调用该函数,则执行第 2 行和第 3 行,等等。
这是怎么回事,我该如何解决?提前谢谢你。
【问题讨论】:
标签: javascript jquery file google-chrome file-upload