<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://lucky.myrice.com/javascriptexam/addelement.htm -->
<!-- saved from url=(0067)file://E:\mengxianhui\经过整理的Javascript代码\动态增加表单元素.htm --><!-- saved from url=(0022)http://internet.e-mail --><HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY>
<TABLE cellSpacing=0 cellPadding=0 width="98%" align=center border=0>
  <TBODY>
  <TR>
    <FORM id=form1 name=form1 action=program/survey/SurveyEdit.asp method=post>
    <TD>
      <TABLE class=tableborder cellSpacing=0 cellPadding=4 width="100%" 
border=0>
        <TBODY>
        <TR>
          <TD bgColor=#c7e8f8>
            <DIV align=center><B>问题 1:</B> </DIV></TD>
          <TD bgColor=#c7e8f8><INPUT class=tableborder size=60 name=Question1> 
          </TD></TR>
        <TR>
          <TD>&nbsp;</TD>
          <TD><B>问题类型: </B><INPUT type=checkbox value=True name=chkQueType1> 
            多选类型 <BR>
            <DIV id=__idQueOption1 name="__idQueOption1"><B>问题选项:</B> <INPUT 
            class=tableborder onpropertychange=addNewChild(this) size=60 
            name=QueOption1> </DIV></TD></TR></TBODY></TABLE>
      <DIV id=__idInsertBefore></DIV><INPUT type=hidden value=1 name=newTable> 
      <BR>
      <DIV 
      style="PADDING-RIGHT: 4px; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; PADDING-TOP: 4px" 
      align=right><INPUT class=CustButton onclick=addNewQuestion() type=button value=增加一个新问题> 
<INPUT class=CustButton type=submit value=保存设置> <INPUT class=CustButton type=reset value=重新设置> 
</DIV></TD></FORM></TR></TBODY></TABLE>
<SCRIPT>
function addNewQuestion()
{document.form1.newTable.value =  parseInt(document.form1.newTable.value) + 1;
var newItemId;
if( (document.form1.newTable.value).length > 2 )
{
alert("您的调查问题总数不能超过 99 个。")
window.location.reload();
}newItemId = document.form1.newTable.value;var objItem = '<table cellspacing="0" cellpadding="4" width="100%" border="0" class="tableborder">';
 objItem += '  <tr>';
 objItem += '<td bgcolor="#C7E8F8">';
 objItem += '      <div align="center"><b>问题 ' + newItemId + ':</b> </div>';
 objItem += '    </td>';
 objItem += '    <td bgcolor="#C7E8F8">';
 objItem += '      <input size="60" name="Question' + newItemId + '" class="tableborder">';
 objItem += '    </td>';
 objItem += '  </tr>';
 objItem += '  <tr>';
 objItem += '    <td>&nbsp;</td>';
 objItem += '    <td><b>问题类型: </b><input type="checkbox" value="True" name="chkQueType' + newItemId + '">';
 objItem += '      多选类型 <br>';
 objItem += '      <div id="__idQueOption' + newItemId + '"><b>问题选项:</b>';
 objItem += '        <input onpropertychange="addNewChild(this)" size="60" name="QueOption' + newItemId + '" class="tableborder">';
 objItem += '      </div>';
 objItem += '    </td>';
 objItem += '  </tr>';
 objItem += '</table>';document.all.__idInsertBefore.insertAdjacentHTML("beforeBegin", objItem);
}function showTips(obj)
{
obj.title=obj.value;
}function addNewChild(obj)
{
var isblank = "false";
var objName = obj.name;
var last2Char = objName.substring(objName.length - 2);
if( last2Char.substring(0, 1) > '9' || last2Char.substring(0, 1) < '0' )
{
last2Char = last2Char.substring(1, 2);
}for(var i=0; i < document.form1.elements[objName].length; i++)
{
if(document.form1.elements[objName].item(i).value == "")
isblank = "yes"
}if( isblank != "yes" )
{
var objItem = '<div id="__idQueOption' + last2Char + '"><b>问题选项:</b>';
   objItem += '  <input onpropertychange="addNewChild(this)" size="60" name="' + objName + '" class="tableborder" />';
   objItem += '</div>';objName = "__idQueOption" + last2Char;
var varQueOption = document.all[objName];
if( varQueOption.length != null )
  varQueOption = varQueOption.item(varQueOption.length-1);varQueOption.insertAdjacentHTML("afterEnd",objItem);
}
}
</SCRIPT>
</BODY></HTML>

解决方案 »

  1.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    "http://www.w3.org/TR/html4/loose.dtd">
    <html>
    <head>
    <title>无标题文档</title>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312">
    <script language="javascript">/*
    //拖动部分
    */function swap(a,b){
      var s=b.innerHTML;
      b.innerHTML=a.innerHTML;
      a.innerHTML=s;
    }function getCell() {
    var oCell = event.srcElement;
    if (oCell.tagName && oCell.tagName.toUpperCase() == "TD")
      return oCell;
      
    return null;
    }var bToggle = false;
    var oCellCur = null;
    var oCellNew = null;
    document.onmousedown = function () {
    oCellCur = getCell();
    if (!oCellCur)
      return;
      
    bToggle = true;
    oCellCur.setCapture();
    }document.onmousemove = function () {
    if (bToggle)
    {
    document.body.style.cursor = "move";
    }
    else
    {
    document.body.style.cursor = "default";
    }
    }document.onmouseup = function () {
    bToggle = false;
    if (oCellCur)
      oCellCur.releaseCapture();

    oCellNew = getCell();
    if (!oCellNew || !oCellCur || oCellNew == oCellCur)
      return;

    swap(oCellCur, oCellNew);
    }/*
    //编辑部分
    */
    function addRow(src){
    //alert(src);
    var newrow = src.insertRow(src.rows.length-1);
    newrow.height=20;
    var i=4;
    while(i--)
    {
    var newcell = newrow.insertCell();
    switch(i){
    case 0: newcell.innerHTML= '<span onmouserover="this.style.textDecoration=\'underline\'" onclick="javascript:return delRow(this.parentElement.parentElement);" style="cursor:hand;">删除此行</span>';newcell.align='middle';break;
    default: newcell.innerHTML=div1.innerHTML;break;
    }
    }

    newrow.cells[0].children[0].focus();}
    function delRow(src){
    var tab=src.parentElement;
    var i=tab.rows.length;
    while(i--){
    if(src==tab.rows[i]){
    alert("是否删除"+ i + "行?");
    tab.deleteRow(i);
    }
    }
    }function nextRow(obj)
    { if(event.keyCode==13)
    {
    if(obj.cellIndex != 2)
    {
    event.keyCode = 9;
    }
    else
    {
    addRow(obj.parentElement.parentElement);
    }
    }
    }
    </script>
    </head><body>
    <table id="tb" width="100%"  border="1" align="center" cellpadding="1" style="border-collapse:collapse" bordercolor="#111111">
      <tr>
        <th scope="col" width="25%">奶类</th>
        <th scope="col" width="25%">数量</th>
        <th scope="col" width="25%">总重</th>
        <th scope="col" width="25%" align="center">操作</th>
      </tr>
      <tr id="blankRow" onClick="addRow(this.parentElement)">
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
        <td>&nbsp;</td>
      </tr>
    </table>
    <div id="div1" style="display:none "><input id="txt" type="text" style="width:95%;border:1px solid #90C4FF;" onkeydown="javascript:return nextRow(this.parentElement)"></div>
    </body>
    </html>
      

  2.   

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
    <html>
    <head>
    <title> New Document </title>
    <meta name="Generator" content="EditPlus">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <script language="JavaScript">
    <!--
    function Load()
    {
    var t = document.all.tt;
    var s = '<tr><td height="30" bgcolor=#ffffff>名称1 - <input name="name"  size=20></td></tr>';
    var n;
    try
    {
    n = parseInt(document.all.how.value);
    }
    catch(e)
    {
    n = 1;
    } var h="";
    for(var i=1;i<=n;i++)
    {
    h += s;
    } //alert(h); t.outerHTML  = "<table id=tt>" + h + "</table>";
    }
    //-->
    </script></head><body>
    <table id=tt>
    <tr> 
    <td height="30" bgcolor=#ffffff>名称1 - 
    <input name="name"  size=20>
    </td>
    </tr>
    </table>
    <input name="how" size=10> <input type="button" value="设置" onclick="javascript:Load();"></body>
    </html>
      

  3.   

    感谢楼上的帮助, 上面帖出的太过多繁了, 小生对js 接触不多 很难看懂, 能精减一些。另外 onclick 了以后动态添加表单 不能刷新原页面。
      

  4.   

    谢谢  ttyp(愿赌服输)  噢马上试试
      

  5.   

    楼主如果对js不怎么熟悉的话,这个不怎么好处理了!
    ttyp(愿赌服输)的也是用js
      

  6.   

    搞定了, 感谢 ttyp(愿赌服输)