在表单上点击提交按钮时,把增加的数据提交到java代码中,输出到控制台。本人是新手,请大家帮帮忙。
下面是表单代码:
<html>
<head>
<script type="text/javascript">
function tb_addnew(){
  document.getElementById("myForm") 
    var user=new Array()
     user[0]=document.getElementById("userId").value
     user[1]=document.getElementById("nameAll").value
     user[2]=document.getElementById("year").value+document.getElementById("month").value+document.getElementById("day").value
     if (document.getElementById("sex").checked)
       { user[3]=document.getElementById("sex").value="男"}
     else
       { user[3]=document.getElementById("sex").value="女"}
     
     submitOK="true"
     if (user[1].length>20)
     {
       alert("名字必须小于 20 个字符。")
       submitOK="false"
      }
      if (user[0].length>20)
      {
        alert("账号必须小于 20 个字符。")
        submitOK="false"
       }
       if (submitOK=="false")
       {
          return false
       }
    var t=document.all("myTable")
    maxcell=t.rows(0).cells.length;
    mynewrow=t.insertRow();
    for(i=0;i<maxcell;i++){    
      mynewcell=mynewrow.insertCell();
      mynewcell.innerText=user[i]; 
  }
}
</script>
</head><body>
<p>题目:写一个表单,接收输入:账号、姓名、生日、性别,账号和姓名以文本框输入;生日以年、月、日下拉框形式输入,性别以单选框输入;输入完成后点击确定按钮,把数据加入下面的表格中</p>
<fieldset>
<legend>请输入:</legend>
<form id="myForm" name=f1>
账号:<input type="text" name="userId" size="20" /><br />
姓名:<input type="text" name="nameAll" size="20" /><br />
生日:<select name=year size=1 onchange="showmonth();showday()">
<script>
var yearbegin=1900,yearend=2012;
document.write("<option value=''selected>请选择年份...</option>")
for(var i=yearbegin;i<=yearend;i++){
document.write ("<option value="+i+">"+i+"</option>")
}
</script>
</select>
<select name=month size=1 onchange="showday();">
<option value="">请选择月份...</option>
</select>
<select name=day size=1>
<option value="">请选择日期...</option>
</select>
<br />
性别:
男<input type="radio" checked="checked" name="sex" value="男" />
女<input type="radio"  name="sex" value="女" /><br />
<blockquote>
<input  type="button" onclick="tb_addnew()" value="提交">
</blockquote>
</form>
<script>
var elYear=eval(document.f1.year)
var elMonth=eval(document.f1.month);
function showmonth(){
if(elYear.value!=""){
for(var i=0;i<12;i++){
elMonth.options.add(new Option(i+1, i+1));
}
}
}function showday(){
var elDay=eval(document.f1.day);
if(elMonth.value!="" && elYear.value!=""){
elDay.length=0;
for(var i=0;i<28;i++){
elDay.options.add(new Option(i+1, i+1));   
}
if(elMonth.value!="2"){
elDay.options.add(new Option(29, 29));
elDay.options.add(new Option(30, 30));
}
switch(elMonth.value){
case "1":
case "3":
case "5":
case "7":
case "8":
case "10":
case "12":{
elDay.options.add(new Option(31, 31));
}
case "02":{
var nYear=elYear.value;
if(nYear%400==0 || nYear%4==0 && nYear%100!=0)elDay.options.add(new Option(29, 29));
}

}
}
}
</script>
</fieldset>
<fieldset>
<h4>人员信息</h4>
<table border="1"
       信息="10">
       
<table id="myTable" >
       
<tr>
  <td>账号</td>
  <td>姓名</td>
  <td>生日</td>
  <td>性别</td>
</tr>
<tr>
  <td>zhangsan</td>
  <td>张三</td>
  <td>19811014</td>
  <td>男</td>
</tr>
</table>
</fieldset>
</body>
</html>本人是新手,请大家帮帮忙,在表单上点击提交按钮时,把增加的数据提交到java代码中,输出到控制台。

解决方案 »

  1.   

    你代码里面并没有form.submit()啊
      

  2.   

    就是,按钮tb_addnew()事件只对form数据校验未提交。
      

  3.   

    悲剧!submit()都没写,咋提交呢?
      

  4.   

    tb_addnew方法的最后添加document.all.myForm.submit();或者<input type="submit" onclick="tb_addnew()" value="提交">
      

  5.   

    还是不行呀,这是修改后的代码:
    <html>
    <head>
    <script type="text/javascript">
    function tb_addnew(){
      document.getElementById("myForm") 
        var user=new Array()
         user[0]=document.getElementById("userId").value
         user[1]=document.getElementById("nameAll").value
         user[2]=document.getElementById("year").value+document.getElementById("month").value+document.getElementById("day").value
         if (document.getElementById("sex").checked)
           { user[3]=document.getElementById("sex").value="男"}
         else
           { user[3]=document.getElementById("sex").value="女"}
         
         submitOK="true"
         if (user[1].length>20)
         {
           alert("名字必须小于 20 个字符。")
           submitOK="false"
          }
          if (user[0].length>20)
          {
            alert("账号必须小于 20 个字符。")
            submitOK="false"
           }
           if (submitOK=="false")
           {
              return false
           }
        var t=document.all("myTable")
        maxcell=t.rows(0).cells.length;
        mynewrow=t.insertRow();
        for(i=0;i<maxcell;i++){    
          mynewcell=mynewrow.insertCell();
          mynewcell.innerText=user[i]; 
      }
    }
    </script>
    </head><body>
    <p>题目:写一个表单,接收输入:账号、姓名、生日、性别,账号和姓名以文本框输入;生日以年、月、日下拉框形式输入,性别以单选框输入;输入完成后点击确定按钮,把数据加入上面的表格中</p>
    <fieldset>
    <legend>请输入:</legend>
    <form id="myForm" name=f1 action="TaxRate" method="post">账号:<input type="text" name="userId" size="20" /><br />
    姓名:<input type="text" name="nameAll" size="20" /><br />
    生日:<select name=year size=1 onchange="showmonth();showday()">
    <script>
    var yearbegin=1900,yearend=2012;
    document.write("<option value=''selected>请选择年份...</option>")
    for(var i=yearbegin;i<=yearend;i++){
    document.write ("<option value="+i+">"+i+"</option>")
    }
    </script>
    </select>
    <select name=month size=1 onchange="showday();">
    <option value="">请选择月份...</option>
    </select>
    <select name=day size=1>
    <option value="">请选择日期...</option>
    </select>
    <br />
    性别:
    男<input type="radio" checked="checked" name="sex" value="男" />
    女<input type="radio"  name="sex" value="女" /><br />
    <blockquote>
    <input  type="button" onclick="tb_addnew()" value="确定">
    </blockquote>
    </form>
    <script>
    var elYear=eval(document.f1.year)
    var elMonth=eval(document.f1.month);
    function showmonth(){
    if(elYear.value!=""){
    for(var i=0;i<12;i++){
    elMonth.options.add(new Option(i+1, i+1));
    }
    }
    }function showday(){
    var elDay=eval(document.f1.day);
    if(elMonth.value!="" && elYear.value!=""){
    elDay.length=0;
    for(var i=0;i<28;i++){
    elDay.options.add(new Option(i+1, i+1));   
    }
    if(elMonth.value!="2"){
    elDay.options.add(new Option(29, 29));
    elDay.options.add(new Option(30, 30));
    }
    switch(elMonth.value){
    case "1":
    case "3":
    case "5":
    case "7":
    case "8":
    case "10":
    case "12":{
    elDay.options.add(new Option(31, 31));
    }
    case "02":{
    var nYear=elYear.value;
    if(nYear%400==0 || nYear%4==0 && nYear%100!=0)elDay.options.add(new Option(29, 29));
    }

    }
    }
    }
    </script>
    <a href="C:\Users\John\Desktop\HTML\myTable.HTML" target="_blank">人员信息表</a>
    </fieldset><fieldset>
    <h4>人员信息</h4>
    <table border="1"
           信息="10">
           
    <table id="myTable" >
           
    <tr>
      <td>账号</td>
      <td>姓名</td>
      <td>生日</td>
      <td>性别</td>
    </tr>
    <tr>
      <td>zhangsan</td>
      <td>张三</td>
      <td>19809224</td>
      <td>男</td>
    </tr></table>
    </fieldset>
    </body>
    </html>
    这是java代码
    package tax;import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.Date;
    import java.util.*;@SuppressWarnings({ "serial", "unused" })
    public class TaxRate extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     System.out.println("do get.........");
     doPost(request,response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("do post.......");
    //String action = request.getParameter("action");

    String userId=request.getParameter("userId");
    String nameAll=request.getParameter("nameAll");
    Date birthday = parseBirthday(request, response);
    String sex = request.getParameter("sex");

    int sexnum = 0;
            if ("男".equals(sex)) {
                sexnum = 0;
            } else {
                sexnum = 1;
            }
    System.out.println(userId+" "+nameAll+" "+birthday+" "+sex);
    }
     private Date parseBirthday(HttpServletRequest request,
            HttpServletResponse response) {
            String year = request.getParameter("birthdayYear");
            String month = request.getParameter("birthdayMonth");
            String day = request.getParameter("birthdayDay");
            Date date = Date.valueOf(year + "-" + month + "-" + day);
            return date;
        }
     public static void main(){
       
     }
    }
      

  6.   

    不好意思,粘错了,加了<input  type="submit" onclick="tb_addnew()" value="提交">
      

  7.   

    首先你这个<input type="button" onclick="tb_addnew()" value="确定">中type应该是submit不是button
    调用tb_addnew()这个方法是在from中<form id="myForm" name=f1 action="TaxRate" method="post"onsubmit="return tb_addnew()"> 
      

  8.   

    账号:<input type="text" name="userId" size="20" /><br />
    姓名:<input type="text" name="nameAll" size="20" /><br />
    生日:<select name=year size=1 onchange="showmonth();showday()">
    <script>没有id属性,document.getElementById("userId").value这样不能获得值。
      

  9.   

    JS 加入    
    window.form.action="url"
    window.form.submit();
    即可。
      

  10.   

    弱弱的问一下,这两个文件要在tomcat下面怎样部署?我参照大家的意见又改了改,不知道是不是我部署的不正确导致的,请大家给点详细的解释啊,我是纯粹的新手。。
    myForm.html文件:
    <html>
    <head>
    <body>
    <p>题目:写一个表单,接收输入:账号、姓名、生日、性别,账号和姓名以文本框输入;生日以年、月、日下拉框形式输入,性别以单选框输入;在表单上点击按钮的时候,把增加的数据提交到Java代码中,输出到控制台
    <fieldset>
    <legend>请输入:</legend>
    <form id="myForm" name=f1 action="TaxRate" method="post" onsubmit="return tb_addnew()">账号:<input type="text" name="userId" size="20" /><br />
    姓名:<input type="text" name="nameAll" size="20" /><br />
    生日:<select name=year size=1 onchange="showmonth();showday()">
    <script>
    var yearbegin=1900,yearend=2012;
    document.write("<option value=''selected>请选择年份...</option>")
    for(var i=yearbegin;i<=yearend;i++){
    document.write ("<option value="+i+">"+i+"</option>")
    }
    </script>
    </select>
    <select name=month size=1 onchange="showday();">
    <option value="">请选择月份...</option>
    </select>
    <select name=day size=1>
    <option value="">请选择日期...</option>
    </select>
    <br />
    性别:
    男<input type="radio" checked="checked" name="sex" value="男" />
    女<input type="radio"  name="sex" value="女" /><br />
    <blockquote>
    <input  type="submit" onclick="tb_addnew()" value="提交">
    </blockquote>
    </form>
    <script>
    var elYear=eval(document.f1.year)
    var elMonth=eval(document.f1.month);
    function showmonth(){
    if(elYear.value!=""){
    for(var i=0;i<12;i++){
    elMonth.options.add(new Option(i+1, i+1));
    }
    }
    }function showday(){
    var elDay=eval(document.f1.day);
    if(elMonth.value!="" && elYear.value!=""){
    elDay.length=0;
    for(var i=0;i<28;i++){
    elDay.options.add(new Option(i+1, i+1));   
    }
    if(elMonth.value!="2"){
    elDay.options.add(new Option(29, 29));
    elDay.options.add(new Option(30, 30));
    }
    switch(elMonth.value){
    case "1":
    case "3":
    case "5":
    case "7":
    case "8":
    case "10":
    case "12":{
    elDay.options.add(new Option(31, 31));
    }
    case "02":{
    var nYear=elYear.value;
    if(nYear%400==0 || nYear%4==0 && nYear%100!=0)elDay.options.add(new Option(29, 29));
    }

    }
    }
    }
    </script>
    </fieldset>
    </body>
    </html>
    TaxRate.java 文件:
    package tax;import java.io.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import java.sql.Date;
    import java.util.*;@SuppressWarnings({ "serial", "unused" })
    public class TaxRate extends HttpServlet {

    public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
     System.out.println("do get.........");
     doPost(request,response);
    }

    public void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
    System.out.println("do post.......");
    //String action = request.getParameter("action");

    String userId=request.getParameter("userId");
    String nameAll=request.getParameter("nameAll");
    Date birthday = parseBirthday(request, response);
    String sex = request.getParameter("sex");

    int sexnum = 0;
            if ("男".equals(sex)) {
                sexnum = 0;
            } else {
                sexnum = 1;
            }
    System.out.println(userId+" "+nameAll+" "+birthday+" "+sex);
    }
     private Date parseBirthday(HttpServletRequest request,
            HttpServletResponse response) {
            String year = request.getParameter("birthdayYear");
            String month = request.getParameter("birthdayMonth");
            String day = request.getParameter("birthdayDay");
            Date date = Date.valueOf(year + "-" + month + "-" + day);
            return date;
        }
     public static void main(){
       
     }
    }