首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

使用javascript操作struts2标签的有关问题

2012-01-05 
使用javascript操作struts2标签的问题?我的功能是这样的:在页面上有增加行的按钮,单击增加行后,增加一行,

使用javascript操作struts2标签的问题?
我的功能是这样的: 
在页面上有增加行的按钮,单击增加行后,增加一行,包括下拉框,两个file框。下拉框选择的是数据库里的内容; 
页面(struts2标签): 
<input type="button" name="button" value="+添加上传内容+" onclick="tbladdrows(this.shu);" shu="1" style="width:138px;">

HTML code
    <table width="700"   border="0"   align="center"   cellpadding="0"   cellspacing="0"   bgcolor="#e0e0e0" id="Table1">            <TBODY id="lines">                                              </TBODY>            </table>       <table id="Table2">            <tr>                 <td   valign="middle">                         <s:submit name="Submit_dummy"   value="上传"   onclick="if(confirm('是否上传?')){return   true;}return   false;"/>                 </td>             </tr>      </table> 


相关的js代码
var oa=0;//定义全局函数  
function tbladdrow(){  

oa++;  
var Table1 = document.getElementById("Table1");  
var i=Table1.rows.length;  

row = Table1.insertRow(Table1.rows.length);  
row.d=oa;  
var col = row.insertCell(0);  
col.innerHTML= '<INPUT name=fname"+i+" value="+i+" SIZE=1 readonly>';  
 
col = row.insertCell(1);
col.innerHTML= '<s:select label='机型' name="model_id" list="modelList" listKey="id" listValue="model_name" headerKey='-1' headerValue='-----选择-----' theme='simple'></s:select>';  

col = row.insertCell(2);
col.innerHTML= 'bb:<INPUT Type=file Name=Procedure"+i+" Size=10 Value=''>';
 
col = row.insertCell(3);
col.innerHTML= 'cc:<INPUT Type=file Name=type"+i+" Size=10 Value=''>';  
 
col = row.insertCell(4);  
col.innerHTML= '<input type= button value=删除 onclick=delChild("+oa+") />';
 


IE提示错误:行77 ,字符60 ,未结束的字符串常量
鼠标右键“查看源文件” 
77 col.innerHTML= '<select name="model_id" id="model_id">
78 <option value="-1"
79 >-----选择-----</option>
80 <option value="1">N70</option>
81 <option value="2">N72</option>
82 <option value="3">N73</option>
83 <option value="8">N78</option>
84 <option value="7">6681</option>
85 <option value="6">6680</option>
86 <option value="5">6610</option>
87 <option value="4">6110</option>
88 <option value="9">N91</option>
89 <option value="10">N95</option>
90 <option value="11">N96</option>
91
92
93 </select>';  
  
请问大家这个该如何解决?在这里先感谢大家了

[解决办法]
col.innerHTML= ' <s:select label='机型' 不能用',要换为\"就可以。代码如下:
var oa=0;
function tbladdrows(obj){
oa++;
var Table1 = document.getElementById("Table1");
var i =Table1.rows.length;
row = Table1.insertRow(Table1.rows.length);
row.d=oa;
var col = row.insertCell(0);
col.innerHTML='<INPUT name=fname"+i+" value="+i+" SIZE=1 readonly>';



col = row.insertCell(1);
col.innerHTML= 's:<select label=\"机型\" name=\"model_id\" list=\"modelList\" listKey=\"id\" listValue=\"model_name\" headerKey=\"-1\" headerValue=\"-----选择-----\" theme=\"simple\"> </s:select>';

col = row.insertCell(2); 
col.innerHTML= 'bb: <INPUT Type=file Name=Procedure"+i+" Size=10 Value=\"\">'; 

col = row.insertCell(3); 
col.innerHTML= 'cc: <INPUT Type=file Name=type"+i+" Size=10 Value=\"\">';

col = row.insertCell(4);
col.innerHTML= ' <input type= button value=删除 onclick=delChild("+oa+") />'; 

}
[解决办法]
给你个参考 
function test() {
 var str = "<select name='test' id='test'>";
 <%
 List trList = (List)request.getAttribute("trList");
 int size = trList.size();
 for(int i = 0 ;i < size;i++){
 %>
 str += "<option >";
 str += "<%=(String)trList.get(i)%>";
 str += "</option>";
 <%
 }
 %>
 str +="</select>";
 alert(str);
 var td = document.getElementById("tsr");
 td.innerHTML = str;
 alert(td.innerHTML);
 }
 
[解决办法]
1.如果想采用select标签的话,可以参考20楼
2.21楼的问题是,说实话,没看懂。先以我的理解来看
1)SetProgram只对model_id设值
2)动态生成几个input的name都是model_id吗?如果是应该var modelIdArray = document.getElementByName("model_id");然后循环设值
[解决办法]
使用struts等标签,把下拉框的内容放到JS数组里去.这样就可以使用innserHTML方式来创建一个tr,里边还有下拉框,它的内容就是那个数组.

热点排行