动态上传附件 IE与firefox的兼容
我在页面是这样写的一个动态创建的附件输入框:
function additem(id) {
alert("1");
var row,cell,str;
alert("11");
//row = ("document.all["+'"'+id+'"'+"]").insertRow(-1);
row = document.getElementById(id).insertRow(-1);
alert("122");
if(row != null ) {
cell = row.insertCell(-1);
str="<input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file class="+'"'+"dd_input_fullsize_file"+'"'+"'> <span><a href='http://localhost:8080/SkyProject/message.do?operate=createMessage&resend=false#' onclick='deleteitem(this,"+'"'+"tb"+'"'+");'><img align='absmiddle' src='/SkyProject/images/delete.gif' border='0'/></a></span>"
cell.innerHTML = str;
alert(cell.innerHTML);
}
num++;
}
function deleteitem(obj, id) {
var rowNum,curRow;
curRow = obj.parentNode.parentNode;
rowNum = $(id).rows.length - 1;
$(id).deleteRow(curRow.rowIndex);
}
但是在firefox下面form就是取不到在输入框中的值在IE下面是可以取的到的。
form中的写法
private List myFiles;
public UploadFile getUploadFile(int index) {
if (myFiles == null)
return null;
int size = myFiles.size();
if (index > size - 1) {
for (int i = 0; i < index - size + 1; i++) {
myFiles.add(new UploadFile());
}
}
return (UploadFile) myFiles.get(index);
}
public List getMyFiles() {
return myFiles;
}
public void setMyFiles(List myFiles) {
if (Utilities.isNullOrEmpty(myFiles)) {
myFiles = new ArrayList();
myFiles.add(new UploadFile());
}
this.myFiles = myFiles;
}
public MessageForm() {
myFiles = new ArrayList();
myFiles.add(new UploadFile());
}
相应的UploadFile类里面有:
private FormFile file;
public FormFile getFile() {
return file;
}
public void setFile(FormFile file) {
this.file = file;
}
action 中写了一句话 List files = messageForm.getMyFiles();里面的值在firefox下面就是没有一个值。不知道是不是页面那个地方写错了。请各位帮忙看下。