function addRow() {
var topicsTable = document.getElementById("tbl");
var newTR = tbl.insertRow(tbl.rows.length);
var newNameTD = newTR.insertCell(0);
newNameTD.innerHTML="<td> <s:action name="pshowAll" /></td>"
var newNameTD = newTR.insertCell(1);
newNameTD.innerHTML='<td><s:select name="product" list="#request.all" listKey="id" listValue="name" headerKey="-1" headerValue="-请选择产品-" /></td>'
var newNameTD = newTR.insertCell(3);
newNameTD.innerHTML='<td><s:textfield name="quantity" size="10" maxlength="10" /></td>'
var newNameTD = newTR.insertCell(4);
newNameTD.innerHTML='<td><s:textfield name="cost"/></td>'
}
提示什么未结束字符串。。。newNameTD.innerHTML='
'就这句有问题[quote]真没注意这么多问提。。。还有。。。如果我加了这么多条记录,我怎么调用ACTION保存呢? [/quote]
这个要另外收费的啊。
最简单的方法就是使用form表单的document.forms['formname'].sumbit();提交这个form了。
在action里面定义
[code="java"]private String[] product;
private String[] quantity;
private String[] cost;[/code]
就可以接受到所有form提交过来的记录了。保存数据的过程就不多说了。
Struts标签最后也会被解析成HTML标签,这是在请求页面时做的,通过JS无法添加吧,JS已经在浏览器里了。
newNameTD.innerHTML='
'这句后面明显没有分号嘛
newNameTD.innerHTML="
"每句语句结束都要加分号,要不然的话,JS会默认在每行后面都加分号,对于比较长的,换行的语句,就被断开了。
你把每句都加上分号试试
还有,嵌套的双引号也是发生这个问题的原因之一。要么转义,要么单双引号分开。
每句Javascript语句的结束都加分号
你提供的脚本很多问题啊。
1.var topicsTable = document.getElementById("tbl");引用的对象都不一样
2.newTR.insertCell(0); 这样的语句中少了 insertCell(2);
3.newNameTD.innerHTML="
给你一个建议或说是做法吧。
把你的这个东西写到JSP里面,如下:
[code="jsp"]
[code="html"]
newNameTD.innerHTML='
js 里字符串是不支持换行的,这样换行写语法是错误的。
可以用 \r\n 来代替 换行
如:
aa = "aaaa\r\nbbb\r\n"