function delRow(e){ searchObjByTagName(e, "TR").removeNode(true); formIsModify = true;}function getRawsIndex()
{
  var e = window.event.srcElement;
  var tri = searchObjByTagName(e, "TR").rowIndex +1;
  var tdi = searchObjByTagName(e, "TD").cellIndex +1;
  alert("你点击的是第 "+ tri +" 行")
}function isTblhasRows(){
  var oTb=document.getElementById("sqd");//获得table对象
  var j=oTb.rows.length;//行总数
   alert(j);
    alert(form2.tname.value);
  if(j<4){
    alert("没有新添加的字段!");
    return false;
  }
}
function checkInputForm(){
  for(var i=0;i<form.fname.length;i++){
    if(form.fname[i].value==""){
       form.fname[i].focus();
       alert("请输入字段名!");
       return false;
    }
    if(isValidString(form.fname[i].value)==false)
    {
      form.fname[i].focus();
      alert("字段名只能是字母或下划线!");
      return false;
    }
    if(form.ftype[i].value=="CHAR"||form.ftype[i].value=="NCHAR"||
          form.ftype[i].value=="VARCHAR2"||form.ftype[i].value=="RAW"||
             form.ftype[i].value=="NUMBER"||form.ftype[i].value=="FLOAT")
       {
         if(form.fwidth[i].value<1){
            form.fwidth[i].focus;
            alert("不允许长度为空的列!");
            return false;
         }
       }
    for(j=i+1;j<form.fwidth.length;j++){
       if(form.fname[i].value==form.fname[j].value)
       {
         alert("不能有重名字段!");
         form.fname[j].focus;
         return false;
       }
    }
    if(form.fpkey[i].checked){
         form.hchkpkey[i].value="Y";
       }
       else{
         form.hchkpkey[i].value="n";
       }
    if(form.fneedchange[i].checked){
       form.hchkndchange[i].value="1"
    }else{
      form.hchkndchange[i].value="0"
    }
}}
function checkInputForm2(){
  var oTb=document.getElementById("sqd");//获得table对象
  var j=oTb.rows.length;//行总数
   alert(j);
    alert(form2.tname.value);
  if(j<4){
    alert("没有新添加的字段!");
    return false;
  }  for(var i=0;i<form2.fname.length;i++){
    if(form2.fname[i].value==""){
       form2.fname[i].focus();
       alert("请输入字段名!");
       return false;
    }
    if(isValidString(form2.fname[i].value)==false)
    {
      form2.fname[i].focus();
      alert("字段名只能是字母或下划线!");
      return false;
    }
     if(form2.ftype[i].value=="CHAR"||form2.ftype[i].value=="NCHAR"||
          form2.ftype[i].value=="VARCHAR2"||form2.ftype[i].value=="RAW"||
             form2.ftype[i].value=="NUMBER"||form2.ftype[i].value=="FLOAT")
       {
         if(form2.fwidth[i].value<1){
           alert("不允许长度为空的列!");
           return false;
         }
       }
    for(j=i+1;j<form2.fwidth.length;j++){
       if(form2.fname[i].value==form2.fname[j].value)
       {
         alert("不能有重名字段!");
         return false;
       }
    }
    if(form2.fpkey[i].checked){
         form2.hchkpkey[i].value="Y";
       }
       else{
         form2.hchkpkey[i].value="n";
       }
    if(form2.fneedchange[i].checked){
         form2.hchkndchange[i].value="1"
    }else{
      form2.hchkndchange[i].value="0"
    }
}}
</script>

解决方案 »

  1.   

    <body bgcolor="#ffffff">表名:cb_detail&nbsp;&nbsp;数据库:<center>
    <table border="1" borderColor="#0099FF" borderColorDark="#eeeeee"cellPadding="2" cellSpacing="0"  class="td" width="840">
     <form name="form" action="tblSuccess.jsp" method="POST" onsubmit="return checkInputForm()">
       <input type="hidden" name="tname" value="cb_detail" >
       <input type="hidden" name="databasename" value="">
      <tr >
       <th>字段序号</th>
       <th>字段名</th>
       <th>字段类型</th>
       <th>字符长度</th>
       <th>小数位数</th>
       <th>主键</th>
       <th>是否修改</th>
       <th>中文注释</th>
       <th>备注</th>  </tr><tr >  <td  valign="top">字段1</td>
      <td><input type="text" value="dw_id" name="fname" size="15"></td>
      <td>
          <select name="ftype" onchange="isEnableForm(this.value,0)">
            <option value="CHAR" >CHAR</option>
            <option value="NUMBER" >NUMBER</option>
            <option value="VARCHAR2" selected>VARCHAR2</option>
            <option value="NCHAR" >NCHAR</option>
            <option value="DATE" >DATE</option>
            <option value="LONG" >LONG</option>
            <option value="RAW" >RAW</option>
            <option value="LONG RAW" >LONG RAW</option>
            <option value="ROWID" >ROWID</option>
            <option value="BLOB" >BLOB</option>
            <option value="CLOB" >CLOB</option>
            <option value="NCLOB" >NCLOB</option>
            <option value="BFILE" >BFILE</option>
            <option value="UROWID" >UROWID</option>
            <option value="FLOAT" >FLOAT</option>
          </select>
      </td>
      <td><input type="text" value="21" name="fwidth" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="text" value="0" name="fdecimal" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="checkbox"  name="fpkey"  checked size="10"></td>
      <td align="right"><input type="checkbox"  name="fneedchange"  size="10"></td>
      <td><input type="text" value="单位编码" name="fsm" size="10"></td>
      <td><input type="text" value="" name="fbak" size="20"  ></td>  <input type="hidden" name="fno" value="1">
      <input type="hidden" name="hchkpkey" >
      <input type="hidden" name="hchkndchange" >
    </tr><tr >  <td  valign="top">字段2</td>
      <td><input type="text" value="hsxm_id" name="fname" size="15"></td>
      <td>
          <select name="ftype" onchange="isEnableForm(this.value,1)">
            <option value="CHAR" >CHAR</option>
            <option value="NUMBER" >NUMBER</option>
            <option value="VARCHAR2" selected>VARCHAR2</option>
            <option value="NCHAR" >NCHAR</option>
            <option value="DATE" >DATE</option>
            <option value="LONG" >LONG</option>
            <option value="RAW" >RAW</option>
            <option value="LONG RAW" >LONG RAW</option>
            <option value="ROWID" >ROWID</option>
            <option value="BLOB" >BLOB</option>
            <option value="CLOB" >CLOB</option>
            <option value="NCLOB" >NCLOB</option>
            <option value="BFILE" >BFILE</option>
            <option value="UROWID" >UROWID</option>
            <option value="FLOAT" >FLOAT</option>
          </select>
      </td>
      <td><input type="text" value="21" name="fwidth" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="text" value="0" name="fdecimal" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="checkbox"  name="fpkey"  checked size="10"></td>
      <td align="right"><input type="checkbox"  name="fneedchange"  size="10"></td>
      <td><input type="text" value="核算项目编码" name="fsm" size="10"></td>
      <td><input type="text" value="" name="fbak" size="20"  ></td>  <input type="hidden" name="fno" value="2">
      <input type="hidden" name="hchkpkey" >
      <input type="hidden" name="hchkndchange" >
    </tr><tr >  <td  valign="top">字段3</td>
      <td><input type="text" value="input_date" name="fname" size="15"></td>
      <td>
          <select name="ftype" onchange="isEnableForm(this.value,2)">
            <option value="CHAR" >CHAR</option>
            <option value="NUMBER" >NUMBER</option>
            <option value="VARCHAR2" >VARCHAR2</option>
            <option value="NCHAR" >NCHAR</option>
            <option value="DATE" selected>DATE</option>
            <option value="LONG" >LONG</option>
            <option value="RAW" >RAW</option>
            <option value="LONG RAW" >LONG RAW</option>
            <option value="ROWID" >ROWID</option>
            <option value="BLOB" >BLOB</option>
            <option value="CLOB" >CLOB</option>
            <option value="NCLOB" >NCLOB</option>
            <option value="BFILE" >BFILE</option>
            <option value="UROWID" >UROWID</option>
            <option value="FLOAT" >FLOAT</option>
          </select>
      </td>
      <td><input type="text" value="0" name="fwidth" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="text" value="0" name="fdecimal" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="checkbox"  name="fpkey"  checked size="10"></td>
      <td align="right"><input type="checkbox"  name="fneedchange"  size="10"></td>
      <td><input type="text" value="录入日期" name="fsm" size="10"></td>
      <td><input type="text" value="" name="fbak" size="20"  ></td>  <input type="hidden" name="fno" value="3">
      <input type="hidden" name="hchkpkey" >
      <input type="hidden" name="hchkndchange" >
    </tr><tr >  <td  valign="top">字段4</td>
      <td><input type="text" value="sub_price" name="fname" size="15"></td>
      <td>
          <select name="ftype" onchange="isEnableForm(this.value,3)">
            <option value="CHAR" >CHAR</option>
            <option value="NUMBER" selected>NUMBER</option>
            <option value="VARCHAR2" >VARCHAR2</option>
            <option value="NCHAR" >NCHAR</option>
            <option value="DATE" >DATE</option>
            <option value="LONG" >LONG</option>
            <option value="RAW" >RAW</option>
            <option value="LONG RAW" >LONG RAW</option>
            <option value="ROWID" >ROWID</option>
            <option value="BLOB" >BLOB</option>
            <option value="CLOB" >CLOB</option>
            <option value="NCLOB" >NCLOB</option>
            <option value="BFILE" >BFILE</option>
            <option value="UROWID" >UROWID</option>
            <option value="FLOAT" >FLOAT</option>
          </select>
      </td>
      <td><input type="text" value="12" name="fwidth" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="text" value="2" name="fdecimal" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="checkbox"  name="fpkey"   size="10"></td>
      <td align="right"><input type="checkbox"  name="fneedchange" checked size="10"></td>
      <td><input type="text" value="发生费用" name="fsm" size="10"></td>
      <td><input type="text" value="" name="fbak" size="20"  ></td>  <input type="hidden" name="fno" value="4">
      <input type="hidden" name="hchkpkey" >
      <input type="hidden" name="hchkndchange" >
    </tr><tr >
      

  2.   

    <td  valign="top">字段5</td>
      <td><input type="text" value="modified" name="fname" size="15"></td>
      <td>
          <select name="ftype" onchange="isEnableForm(this.value,4)">
            <option value="CHAR" >CHAR</option>
            <option value="NUMBER" selected>NUMBER</option>
            <option value="VARCHAR2" >VARCHAR2</option>
            <option value="NCHAR" >NCHAR</option>
            <option value="DATE" >DATE</option>
            <option value="LONG" >LONG</option>
            <option value="RAW" >RAW</option>
            <option value="LONG RAW" >LONG RAW</option>
            <option value="ROWID" >ROWID</option>
            <option value="BLOB" >BLOB</option>
            <option value="CLOB" >CLOB</option>
            <option value="NCLOB" >NCLOB</option>
            <option value="BFILE" >BFILE</option>
            <option value="UROWID" >UROWID</option>
            <option value="FLOAT" >FLOAT</option>
          </select>
      </td>
      <td><input type="text" value="1" name="fwidth" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="text" value="0" name="fdecimal" size="10"  onKeypress="JHshNumberText()"></td>
      <td><input type="checkbox"  name="fpkey"   size="10"></td>
      <td align="right"><input type="checkbox"  name="fneedchange"  size="10"></td>
      <td><input type="text" value="记录状态" name="fsm" size="10"></td>
      <td><input type="text" value="" name="fbak" size="20"  ></td>  <input type="hidden" name="fno" value="5">
      <input type="hidden" name="hchkpkey" >
      <input type="hidden" name="hchkndchange" >
    </tr>  <tr align="center">
       <td colspan="10">
        <input type="submit" name="submit" value="修改" class="button">&nbsp;&nbsp;
        <input type="button" name="back" value="返回" onclick="chkValues()" class="button">   </td>
      </tr>
    </form>
    </table>
    <form action="tblSuccess.jsp" method="POST" onsubmit="return checkInputForm2();" name="form2">
      <table  border="1" borderColor="#0099FF" borderColorDark="#eeeeee"cellPadding="2" cellSpacing="0"  class="td" id="sqd" width="840" >
         <tr>
         <td colspan="10" align="right"> <input name="btnAdd" type="button" onclick="add_row()" value="添加新字段" class="button">
           <input name="submita" type="submit" value="添加" class="button" >
              <input type="hidden" name="tname" value="cb_detail" >
              <input type="hidden" name="databasename" value="">
         </td>
         <tr>
        <tr>
       <th>字段序号</th>
       <th>字段名</th>
       <th>字段类型</th>
       <th>字符长度</th>
       <th>小数位数</th>
       <th>主键</th>
       <th>是否修改</th>
       <th>中文注释</th>
       <th>备注</th>
       <th>&nbsp;</th>
      </tr>  </table>
    </center>
    </form>
    <!--<form name="formAdd" action="" method="POST">-->
    </body>
    </html>
    请各位看看我的代码,为什么点击“添加新字段”只添加1行时,return checkInputForm2()“不起作用,而添加多于一行时,是正常的?
    谢谢!
      

  3.   

    楼主代码好长呀:)  大概看了一下,问题可能出在下面这个函数里,我改了一下这个函数,你换上去试试,在第29行.
    function isEnable(selValue){
        var e = window.event.srcElement;
        var tri = searchObjByTagName(e, "TR").rowIndex +1;
        if(selValue=="CHAR"||selValue=="VARCHAR2"||selValue=="NCHAR"||selValue=="RAW"||selValue=="FLOAT")
         {
       if(tri==4)
       {
    form2.fwidth.value="10";
    form2.fdecimal.value="0";
       }
       else
       {
                form2.fwidth[tri-4].value="10";
                form2.fdecimal[tri-4].value="0";
       }
       
         }
        if(selValue=="DATE"||selValue=="LONG"||selValue=="LONG RAW"||selValue=="ROWID"||selValue=="BLOB"||selValue=="CLOB"||selValue=="NCLOB"||selValue=="BFILE"||selValue=="UROWID")
         {
       if(tri==4)
       {
           form2.fdecimal.value="0";
       form2.fwidth.value="0";
       }
       else
    {
       form2.fdecimal[tri-4].value="0";
       form2.fwidth[tri-4].value="0";
            }
     }
       }