Вложенный код - это мой код. Когда я нажимаю "Загрузить больше файлов", функция addElement
добавит один файл обзора. Он работает в IE, но не работает в Google Chrome. В Chrome, когда я нажимаю на кнопку, он даже не отвечает.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<script>
var fCount = 1;
function addElement() {
fCount++;
var fObject = document.getElementById('fileSection');
var text = 'File:';
var tag='<input type="file" name="theFile[' + fCount + ']" value="">';
var brk='<br>'
var o1 = document.createTextNode(text);
var o2 = document.createElement(tag);
var o3 = document.createElement(brk);
fObject.appendChild(o3);
fObject.appendChild(o1);
fObject.appendChild(o2);
fObject.appendChild(o3);
alert("fCount" + fCount);
}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body bgcolor="pink">
<html:form action="/myActionForm" method="post"
enctype="multipart/form-data">
<div id="fileSection">
Select file to upload <html:file property="theFile[0]"/><br>
</div>
<html:button property="bt" onclick="addElement()">Upload More files</html:button>
<html:submit></html:submit>
<br>
<br>
</html:form>
</body>
</html>
Это связано с тем, что вам необходимо передать tag name
методу createElement
. Не фрагмент элемента. IE всегда странный, может быть работа, но это неправильно.
Правильный способ:
var tag = document.createElement('input');
tag.setAttribute('type', 'file');
tag.setAttribute('name', 'theFile[' + fCount + ']');