自动添加一行,其中有文本框和下拉框
程序如下:
function tb_addnewaward()
{
var nId = document.all("VarNum").value;
var num = parseInt(nId);

var ls_t=document.all("myaward")
//maxcell=ls_t.rows(0).cells.length;
mynewrow = ls_t.insertRow();
mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>
                                
                                <%
for (int i=0;i<list1.size();i++)
    {
Publishbook vpat = (Publishbook) list1.get(i);

%>  
<option value="<%=vpat.getBookno()%>" ><%=vpat.getBookno()%></option>
<%   
}
%>
</select></div>" mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='center'><input type='text' name='awardtitle"+(num+1)+"' value=''></div>"
mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='center'><input type='text' name='awardlevel"+(num+1)+"' value='' ></div>"

mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='center'><input type='text' name='awarddate"+(num+1)+"' value=''></div>"
mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='center'><input type='text' name='authorizedept"+(num+1)+"' value=''></div>"
mynewcell=mynewrow.insertCell();
mynewcell.innerHTML = "<div align='center'><input type='text' name='awardgrade"+(num+1)+"' value=''></div>"
document.all("VarNum1").value = num+1;

}
其中下拉框的内容为表publishbook的bookno字段,但是这个函数为什么不好用?

解决方案 »

  1.   

    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>
    ...
    </select></div>"  和java一样,javascript字符串不能换行改成
    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>"
      <%for(...){...%>
      + "<option value='<%=vpat.getBookno()%>'><%=vpat.getBookno()%></option>"
      <%}%>
      + "</select></div>";
      

  2.   

    fosjos(无聊的菜鸟程序员) 你的方法还是不好用啊
    是不是这样啊
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>
                                    
                                    <%
    for (int i=0;i<list1.size();i++)
        {
    Publishbook vpat = (Publishbook) list1.get(i);

    %>  
    + "<option value="<%=vpat.getBookno()%>" ><%=vpat.getBookno()%></option>
    <%   
    }
    %>
     + "</select></div>"
      

  3.   

    是不是第二行最后一个引号没有加?
     你先去看看生成html后的源文件,看看javascript有没有语法错误不明白的话,就把源文件的这段代码贴出来
      

  4.   

    function tb_addnewaward()
    {
    var nId = document.all("VarNum").value;
    var num = parseInt(nId);

    var ls_t=document.all("myaward")
    //maxcell=ls_t.rows(0).cells.length;
    mynewrow = ls_t.insertRow();
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>
                                    
                                    <%
    for (int i=0;i<list1.size();i++)
        {
    Publishbook vpat = (Publishbook) list1.get(i);

    %>  
    +"<option value="<%=vpat.getBookno()%>" ><%=vpat.getBookno()%></option>
    <%   
    }
    %>
    +"</select></div>" mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardtitle"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardlevel"+(num+1)+"' value='' ></div>"

    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awarddate"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='authorizedept"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardgrade"+(num+1)+"' value=''></div>"
    document.all("VarNum1").value = num+1;

    }
      

  5.   

    function tb_addnewaward()
    {
    var nId = document.all("VarNum").value;
    var num = parseInt(nId);

    var ls_t=document.all("myaward")
    //maxcell=ls_t.rows(0).cells.length;
    mynewrow = ls_t.insertRow();
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>
                                    
                                    <%
    for (int i=0;i<list1.size();i++)
        {
    Publishbook vpat = (Publishbook) list1.get(i);

    %>  
    +"<option value="<%=vpat.getBookno()%>" ><%=vpat.getBookno()%></option>
    <%   
    }
    %>
    +"</select></div>" mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardtitle"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardlevel"+(num+1)+"' value='' ></div>"

    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awarddate"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='authorizedept"+(num+1)+"' value=''></div>"
    mynewcell=mynewrow.insertCell();
    mynewcell.innerHTML = "<div align='center'><input type='text' name='awardgrade"+(num+1)+"' value=''></div>"
    document.all("VarNum1").value = num+1;

    }<html:form action="bookaward_insertsave.do" method="POST" onsubmit="return checkForm(this)"> <TABLE width="98%" border="4" align="center" bordercolor="#164dab" id="tblContent">
    <TR> <!-- to here end :Luiy -->
    <TD>
    <TABLE width="100%" border="1" align="center" bordercolor="#164dab" id="myaward">
                       <TR align="center"> 
                        <TD align="center" ><FONT size="2"> 书号 </FONT></TD>                    <TD align="center" ><FONT size="2"> 获得奖项名称 </FONT></TD>
                         <TD align="center"> <FONT size="2">奖项等级 </FONT></TD>
                         <TD align="center"> <FONT size="2">获得奖项时间 </FONT></TD>
                        <TD align="center"> <FONT size="2">奖项颁发机构 </FONT></TD>
                         <TD align="center"><FONT size="2"> 奖项级别 </FONT></TD>
                        
                       </TR>
                       <TR>
                          <TD id="td1" align="center">
      <select id="bookno1" name='bookno1'>
      <%System.out.print("Pppppppppppppppppp");
    for (int i=0;i<list1.size();i++)
        {
    Publishbook vpat = (Publishbook) list1.get(i);

    System.out.print(vpat.getBookno());

    %>
    <option value="<%=vpat.getBookno()%>" ><%=vpat.getBookno()%></option>
    <%   
    }
    %>
    </select>  </TD>
      <TD align="center">
      <INPUT type="text" name="awardtitle1" value="">
     </TD>
     <TD align="center">
      <INPUT type="text" name="awardlevel1" value="">
     </TD>
     <TD align="center">
      <INPUT type="text" name="awarddate1" value="">
     </TD>
      <TD align="center">
      <INPUT type="text" name="authorizedept1" value="">
     </TD>
     <TD align="center">
      <INPUT type="text" name="awardgrade1" value="">
     </TD>
     
     </TR>
                    </TABLE> 
    </TD>
    </TR>

             <TR>
     <TD height="40" align="center" colspan="4">
     &nbsp;
            <DIV align="right">
    <INPUT id="VarNum1" type="hidden" value="1" name="VarNum">
    <INPUT type="button" value="新增一行内容" onclick="tb_addnewaward()" align="bottom">
    <INPUT type="button" value="删除一行内容" onclick="tb_deleteaward()"  align="bottom">
    </DIV>
     </TD>
       </TR>
       <TD style="TEXT-ALIGN: center" width="54%">
    <TABLE class="tblCommandBtn" id="tblCommandBtn" onmouseover="button_over()" onmouseout="button_out()" bordercolor="#164dab">
    <TR>
    <TD><INPUT type="submit" name="bt" value="保 存"></TD> <TD><INPUT type="reset" name="bt1" value="重 置"></TD>
      </TR>
      </TABLE>
    </TD>
    </TABLE>

    </html:form>
     <script language="javascript">
    function tb_deleteaward() {
    var nId = document.all("VarNum").value;
    var num = parseInt(nId);
    if(num==1)
    {
    alert("您不能删除行了!");
    return;
    }
    var ls_t=document.all("myaward"); ls_t.deleteRow() ;
    document.all("VarNum").value = num-1;
    } </script>
                   
      </body>
    </html>
      

  6.   

    mynewcell.innerHTML = "<div align='right'><select name='bookno"+(num+1)+"'>"
    <%
    for (int i=0;i<list1.size();i++){
      Publishbook vpat = (Publishbook) list1.get(i);
    %>  
      +"<option value='<%=vpat.getBookno()%>' ><%=vpat.getBookno()%></option>"
    <%
    }
    %>
    +"</select></div>";
      

  7.   

    好用了,非常感谢fosjos(无聊的菜鸟程序员)