下面是我的一点源代码(js源码):
    
  function AddInput(){       [align=left]//table对象
        var table = document.getElementById("options");            //row的长度
         var count = table.rows.length;       //开始增加行
      var row = table.insertRow(count - 1);        //为新添加行设置id
    row.id = nextNumber;      //添加列 nextRowText是一个字符串,这个不用管
    row.insertCell(0).innerHTML = "选项" + nextRowText;           //nextNumber是A-Z里的其中一个字母
    row.insertCell(1).innerHTML = "<input type='textbox' id='txt" + nextNumber + "' name='txt" + nextNumber + "'  onblur=\"CheckIsInput('" + nextNumber + "')\" runat='server'/>";    row.insertCell(2).innerHTML = "<input type='button' value='删除' id='btn" + nextNumber + "' onclick=\"Delete('" + nextNumber + "')\"/>";    row.insertCell(3).innerHTML = "<div id='div" + nextNumber + "'></div>";
}我的问题还是:如何把一个手动生成的input控件,放入手动增加行的第二列表格?这才是重点,也可以写个例子给我。

解决方案 »

  1.   

    你想用 JavaScript 生成服务器控件?那是不可能的。
    row.insertCell(1).innerHTML = "<input type='textbox' id='txt" + nextNumber + "' name='txt" + nextNumber + "' onblur=\"CheckIsInput('" + nextNumber + "')\" runat='server'/>"
    把 runat='server' 去掉,在后端你可以通过 Request.Form[你创建的 Input 的 name] 获取到你创建的 Input 的值。
      

  2.   

    function addRow(){
    $('#tb_commodity').append(
    "<tr><td><input type='text' size='20'/></td><td><button name='btn_add' onclick='delRow(this)'"+
    " class='bt1_mouseout' onmouseover='this.className=\"bt1_mouseover\"' onmouseout='this.className=\"bt1_mouseout\"'>删除</button></td></tr>");
    }
    function delRow(a){
    alert($(a).get(0));
    $(a).parent().parent().remove();
    }

     tb = document.getElementById("tab");
    var tr =tb.insertRow();
    var cell = tr.insertCell();
    cell.innerHTML = "";
    function del(obj)
      {
      var tr = obj.parentNode.parentNode;
      document.getElementById('tab').deleteRow(tr.rowIndex);
      }
      

  3.   

    大哥,我也不想这样呀。这个页面是嵌套在一个模板页里的,input控件的name是随机产生的,不好控制呀。我朋友说,这样能行。
       你还是回答我的问题吧。谢谢你。
      

  4.   

    如果你在后端不清楚 Input 的 name,你可以在前端提交页面前,用 JS 把 Input 里的值取出来,放到一个隐藏域里(用逗号或者其它什么符号分隔或者干脆用 JSON 格式储存),到后端只要处理这个隐藏域就可以了。
      

  5.   


    不是我写的,是你写的。我只是看到你有 runat="server" 所以引用一下,以指明问题所在。