2012-10-15 34 views
4

我想做一个多重上传,iam使用这个论坛的一些脚本。 脚本是完美的作品,但是当我将它与我的项目合并。 javascript无法获取我的元素的值。 我发现这个问题是因为我在页面许多ID PANEL,我需要改变,以getElementByID('<%="FileUpdate.ClientID%>').value(原:getElementByID("FileUpdate").valueASP.NET如何使用计数器与'<%=

的问题是: 我必须使用计数器,例如:getElementByID('<%="txtFileUpdate' + counter + '%>').value但它失败。 该错误表示“字符文字中的字符过多”指向该行。

请人帮忙,有没有解决这个问题的方法?

这里是脚本

----->错误 “在字符的字符常量”

<script type="text/javascript" language="javascript"> 

    var counter = 1; 

    function AddFileUpload() { 
     if (counter < 5) { 
      counter++; 
      var div = document.createElement('DIV'); 
      div.innerHTML = '<input id="FileUpload' + counter + '" name = "file' + counter + 
     '" type="file" />' + 
      '<input id="Button' + counter + '" type="button" ' + 
      'value="Remove" onclick = "RemoveFileUpload(this)" />'; 
      document.getElementById("FileUploadContainers").appendChild(div); 
     } 
     else { 
      alert("Cannot attach more than 5 file"); 
     } 
    } 

    function GetFile() { 
     var temp; 
     var error = ""; 
     var stringx = ""; 
     var exCounter = 1 ; 
     for (exCounter; exCounter <= counter; exCounter++) { 
    -----> stringx = document.getElementById('<%=FileUpload'+exCounter+'.ClientID%>').value;  
       if (stringx != "") 
       temp += stringx + "#;"; 
      else 
       error += exCounter + ", ";        
     } 
     if (error != "") { 
      alert("Field " + error + " Still Empty"); 
      return; 
     } 
      document.getElementById('<%=HiddenField1.ClientID%>').value = temp;    
    } 
+0

w帽子是否意味着 - “我必须使用计数器”?你有一些ListView或Repeater为你的FileUpload元素。请显示代码。 –

+1

这不起作用。原因在于'<%...%>'之间的代码在服务器上执行,但“exCounter”是在客户端上执行的JavaScript。这只是对asp.net –

+1

的胡言乱语你将不得不彻底改变你如何做到这一点。您可能会考虑使用jQuery来获取输入类型文件的数组,然后使用计数器作为该数组的索引 –

回答

0

试试这个:

getElementByID('FileUpdate<%=counter%>').value 

getElementByID('<%=txtFileUpdate + counter.ToString()%>').value 
+0

@ Andrew Cooper:仍然错误Sir,在当前上下文中不存在名称'Counter' – ExpertWannaBe

+0

@ Andrew Cooper: 1.名称'FileUploadContainer'在当前上下文中不存在 2.名称'Counter'的作用是在当前上下文中不存在 – ExpertWannaBe

+1

您需要发布一些更多代码来显示上下文。 “柜台”在哪里申报? –