我有一个带有jqGrid的页面。在该网格上,我为寻呼机添加了一个自定义按钮,当单击该按钮时,会打开一个文件浏览器,供用户上传excel文件。文件输入以表单形式包装,并以隐藏的iframe为目标。
我知道在Internet Explorer中,您无法使用javascript提交文件。我正在试图找出一种方法来提交iframe并实际上将文件传递给带有值的服务器。
在Chrome中,我可以通过触发单击提交按钮来提交它,我已经离开页面文件输入更改并获取文件,但在Internet Exploder中它返回null。
HTML:
<form action="/ManagedCatalog/ImportContractsFromExcelFile" method="post" enctype="multipart/form-data" target="upload_target" onsubmit="">
<input type="file" id="uploadedFile" name="uploadedFile" accept=".csv, application/vnd.openxmlformats-officedocument.spreadsheetml.sheet, application/vnd.ms-excel" />
<input type="submit" id="submitBtn" name="submitBtn" value="Upload" style="position: absolute; z-index: 19999; top: -1000px; left: -1000px;"/>
</form>
<iframe id="upload_target" name="upload_target" src="#" style="width: 0; height: 0; border: 0px solid #fff;"></iframe>
自定义导航按钮触发:
function ImportContractsFromExcelFile() {
$('#uploadedFile').trigger('click');
}
我必须在Chrome中工作:
$('#uploadedFile').change(function () {
$('#submitBtn').trigger('click');
});
完全鼓励任何提示,技巧,建议,评论或殴打。 请帮助。
编辑:
我这样做,因为我的团队和我正在重写的银色应用程序以这种方式行动,客户希望保持这种行为。我可以沿着jquery对话框窗口路线向用户提供一个单击按钮,但我想尝试保持尽可能相似。