我在页面是这样写的一个动态创建的附件输入框:
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"+'"'+"'>&nbsp;&nbsp;&nbsp;<span><a href='http://localhost:8080/SkyProject/message.do?operate=createMessage&amp;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下面就是没有一个值。不知道是不是页面那个地方写错了。请各位帮忙看下。

解决方案 »

  1.   

     List files = (LIST)messageForm.getMyFiles();
      

  2.   

    我这个myFiles本身就是定义了一个List的集合啊!  List fiels = messageForm.getMyFiles(); ---- 取出来就是一个集合为什么还要在转换成List的呢?是不是在与页面的写法有关系呢? ------function additem(id) { 
      var row,cell,str; 
      row = document.getElementById(id).insertRow(-1); 
      if(row != null ) { 
        cell = row.insertCell(-1); 
        str=" <input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file class="+'"'+"dd_input_fullsize_file"+'"'+"'>&nbsp;&nbsp;&nbsp; <span> <a href='http://localhost:8080/SkyProject/message.do?operate=createMessage&amp;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++; 
    }   我查了半天没查到啊?请帮帮忙?
      

  3.   

    我这个myFiles本身就是定义了一个List的集合啊!  List fiels = messageForm.getMyFiles(); ---- 取出来就是一个集合为什么还要在转换成List的呢?是不是在与页面的写法有关系呢? ------function additem(id) { 
      var row,cell,str; 
      row = document.getElementById(id).insertRow(-1); 
      if(row != null ) { 
        cell = row.insertCell(-1); 
        str=" <input type="+'"'+"file"+'"'+" name=uploadFile["+ num +"].file class="+'"'+"dd_input_fullsize_file"+'"'+"'>&nbsp;&nbsp;&nbsp; <span> <a href='http://localhost:8080/SkyProject/message.do?operate=createMessage&amp;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++; 
    }   我查了半天没查到啊?请帮帮忙?