JSP:javascript实现输入多行动态输入

发表于:2007-06-21来源:作者:点击数: 标签:
一般,我们用 request.getParameter("value"); 来获得静态HTML输入的值.然后不要忘记判断是否为空,是否含有特殊字符等. 还可以用 Enumeration paramNames=request.getParameterNames(); while(paramNames.hasMoreElements()){String paramName=(String)paramN

   
  一般,我们用
  request.getParameter("value");
  来获得静态HTML输入的值.然后不要忘记判断是否为空,是否含有特殊字符等.
  
  还可以用
  Enumeration paramNames=request.getParameterNames();

  while(paramNames.hasMoreElements()){String paramName=(String)paramNames.nextElement();}
  来收集<input type="text" name="name"/>中的name
  
  但是我们每增加新的一行,参数名同上一行一样,那么,我们将如何获得value的值?
  这里我又去看书(servlet 和 JSP 核心编程,极好的一本书,该讲的都讲了,读明白了它servlet/JSP也就可以说精通了)p70页里面:getParameterValues()返回字符串数组,然后我们用循环判断这个字符串数组的长度,再就是获得值了:)
  
  
  request.getParameter("value");//这个最熟悉,获得文本框的值
  (Enumeration)request.getParameterNames();//获得文本框的名字
  (String[])request.getParameterValues(paramName);//获得静态html页相同的参数(多次出现)的值
  
  *************html 页 javascript 代码:
  <script language="javascript">
  function tbladdrow()
  {
  var i=lines.rows.length;
  var row = Table1.insertRow(Table1.rows.length);
  var col = row.insertCell(0);
  col.innerHTML = "<INPUT id=line["+i+"][name1] name=line"+i+"name1 SIZE=10>";
  col = row.insertCell(1);
  col.innerHTML = "<INPUT id=line["+i+"][name2] name=line"+i+"name2 SIZE=10>";
  col = row.insertCell(2);
  col.innerHTML = "<INPUT id=line["+i+"][name3] name=line"+i+"name3 SIZE=10>";
  col = row.insertCell(3);
  col.innerHTML = "<INPUT id=line["+i+"][name4] name=line"+i+"name4 SIZE=10>";
  }
  function tbladdrows(items)
  {
  for( i = 1 ; i <= items ; i++)
  {
  tbladdrow();
  }
  }
  function delrow()
  {
  if(lines.rows.length==0)
  {
  return false ;
  }
  lines.deleteRow();
  }
  
  </script>
  
  ****************html页其它代码:
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=Big5">
  <title>?入</title>
  </head>
  <body>
  <form action="getInput.jsp">
  <DIV align=center><FONT size=2>?入??</FONT></DIV></TD>
  <TD width=412 bgColor=#e4e4e4>
  <TABLE id=Table1 cellSpacing=0 borderColorDark=#ffffff cellPadding=0
  width=350 align=center borderColorLight=#000000 border=1>
  <TBODY>
  <TR bgColor=#999999>
  <TH width=94><FONT size=2>??一</FONT></TH>
  <TH width=84><FONT size=2>??二</FONT></TH>
  <TH width=85><FONT size=2>??三</FONT></TH>
  <TH width=77><FONT size=2>??四</FONT></TH></TR>
  <TBODY id=lines name="lines"><!--
  <TR>
  <TD><INPUT id="things_name" TYPE="text" NAME="things_name" SIZE="15"></TD>
  <TD><INPUT id="things_model" TYPE="text" NAME="things_model" SIZE="10"></TD>
  <TD><INPUT id="things_number" TYPE="text" NAME="things_number" SIZE="5"></TD>
  <TD><input id="things_unit" type="text" name="things_unit" size="5"></TD>
  </TR>
  --></TBODY></TABLE>
  <DIV align=center><BR></DIV>
  <DIV align=center>
  <INPUT id=items type=hidden value=1 name=items> <INPUT onclick=tbladdrow(items.value);
  
  type=button value=新增一行 name=insert/>
  <font color="#e4e4e4"> </font>
  <INPUT language=javascript onclick="return delrow()" type=button value=?除一行 name=del/>
  </DIV></TD></TR></TBODY></TABLE>
  <input type="submit" value="commit"/>
  </form>
  </body>
  </html>
  
  ***jsp页收集输入
  <%@ page contentType="text/html;charset=Big5"%>
  <%@ page import="java.util.*"%>
  
  <%
  request.setCharacterEncoding("big5");
  
  Enumeration paramNames=request.getParameterNames();
  String paramName=null;
  while(paramNames.hasMoreElements()){
  paramName=(String)paramNames.nextElement();
  
  String param=request.getParameter(paramName);
  
  //out.println(paramName+"  "+param+"<br>");
  
  String paramValues[]=request.getParameterValues(paramName);
  for(int i=0; i<=paramValues.length-1; i++)
  {
  out.println(paramName+" ");
  out.println(paramValues[i]+"<br>");}
  
  }
  
  
  
  //out.println("<br>"+name);
  
  %>
  <html>
  <head>
  <meta http-equiv="Content-Type" content="text/html; charset=Big5">
  <title>接受?入</title>
  </head>
  <body>
  </body>
  </html>

原文转自:http://www.ltesting.net