2014-09-26 54 views
0

內的Java代碼我的要求是如下。如何寫的innerHTML

  1. 無論何時用戶單擊Additem按鈕應該在表中添加一個新行(表名稱:additionalInfoTable)。
  2. 的必須具備三個單元。
  3. 前兩個單元格必須有文本字段。
  4. 第二單元必須有下拉與值的列表。

爲此,我在JavaScript中有如下編寫的代碼。但是,當我從Java ArrayList生成下拉值時,Java代碼段不在InnerHTML內部運行。

function addAdditionalRow() { 
     var table = document.getElementById("additionalInfoTable"); 
     var row = table.insertRow(-1); 
     var cell1 = row.insertCell(0); 
     var cell2 = row.insertCell(1); 
     var cell3 = row.insertCell(2); 
     var cell4 = row.insertCell(3); 

     cell1.innerHTML = '<input type="text" size="15" name="additionalCost" />'; 
     cell2.innerHTML = '<input type="text" size="15" name="totalCost" />'; 
     cell3.innerHTML = '<select name="recoveryType">'+        
          '<option>--Select Recovery Type--</option>'; 

          <% for(String recType: details.getRecoveryTypeList()) { %> 
          var recType = '<%=recType%>'; 
     cell3.innerHTML = '<option value="'+recType+'">'+recType%+'</option>'; 
          <%}%> 

     cell3.innerHTML = '</select>';  
     cell4.innerHTML =  '<input type="button" value="Delete" onclick="deleteRow(this)"/>'; 
    } 

我的表的JSP代碼如下。

<table border ="1" width="100%" id="additionalInfoTable"> 
<thead> 
    <tr> 
     <td align="center" ><b>Additional Cost $</b></td> 
     <td align="center" ><b>Total Cost</b></td> 
     <td align="center" ><b>Recovery Type</b></td> 
     <td align="center" ><b>Delete</b></td></tr> 

    </tr> 
</thead>   
    <tbody id="addBillbackdata"> 
     <tr> 
      <td align="center"> 
       <input type="text" size="15" name="additionalCost" /> 
      </td> 
      <td align="center"> 
       <input type="text" size="15" name="totalCost" /> 
      </td> 
       <select name="recoveryType"> 
        <option>--Select Recovery Type--</option> 
        <% for(String recType: details.getRecoveryTypeList()) { %> 
        <option value="<%=recType%>"><%=recType%></option> 
        <%}%> 
       </select> 
      </td> 
      <td align="center"> 
       <input type="button" value="Delete" onclick="deleteRow(this)"/> 
      </td> 
     </tr> 
    </tbody> 
</table> 

請幫我獲取JavaScript的Java的ArrayList的價值觀裏面的innerHTML

+0

JavaScript代碼,而內scriptlet代碼在服務器上運行在客戶端瀏覽器上運行。因此它不可能從js運行scriptlet。 – ares 2014-09-26 13:06:35

+0

有沒有可能獲得使用Javascript的內部下拉列表中添加arrayList值? – robinrjoe 2014-09-26 13:08:00

+0

@CodeStruggler,你遇到過任何js錯誤?,請檢查瀏覽器控制檯,按F12查看,如果有的話 – Arvind 2014-09-26 13:09:11

回答

1

您的JavaScript修改了瀏覽器的HTML。 JSP代碼在被傳送到瀏覽器之前在服務器端進行編譯。這是不可能使用JSP代碼在JavaScript中,因爲瀏覽器無法解釋它的方式。你必須要麼

  • 創建JSP所需的HTML,隱藏它(與display:none EG),並動態地使用JavaScript
  • 重視它創建一個全局JavaScript變量在<script> -Tag內JSP和引用它您的按鈕回調
  • 創建一個不同的JSP或Servlet提供的數據,並使用AJAX請求它​​