我用JavaScript生成的一段HTML表单代码里面有个生成表单字段的按钮
点这个按钮生成的输入框取不到值怎么回事?

解决方案 »

  1.   

    前端取不到值 用document.getElementsByName()取不到。
    var idcount = 2 ;
    var idtable = 1 ;
    function xx(){
    var tableid = "table" + idcount ;
    //...略部分代码.....
    htmlsco += "</td></tr></table></div>" ;
    htmlsco += "<div><table id="+tableid+"><tr><td>" ;
    htmlsco += "<input name=\"newpoint\" type=\"button\" style=\"width: 80px\" class=\"buttom\" value=\"新增划线点\" onclick=\"addTableRow('"+tableid+"')\"/>";
    htmlsco += "</td></tr></table></div>" ;
    htmlsco += "</fieldset>" ;
    idcount++ ;

    return htmlsco ;
    }
    function addTableRow(table){
    var type = table.substring((table.length-1),table.length)  ;
    var project = "project" + type + idtable ;
    var tableRow = document.getElementById(table).insertRow();
    tableRow.setAttribute("id",project);
    var mode = document.getElementById("mode1");
    var modename = "mode" + type ;
    var number = "number" + type ;
    var catege = "catege" + type ;
    var newCell = tableRow.insertCell();
    newCell.innerHTML = "<label>划线项目:</label>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input type=\"text\" name="+catege+"/>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<select name="+modename+">"+mode.innerHTML+"</select>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input type=\"text\" name="+number+"/>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input name=\"delete\" type=\"button\" class=\"buttom\" value=\"删除\" onclick=\"delRow('"+project+"')\"/>" ;
    idtable ++;
    }
      

  2.   

    newCell.innerHTML = "<input type=\"text\" name="+catege+"/>" ;
    这里取不到值
      

  3.   

    你这段代码里面,少了一句话
    $("body").append(htmlsco);
    <html>
    <head runat="server">
    <title>无标题页</title>
    <script type="text/javascript" src="js/jquery.js"></script>
    <script type="text/javascript">
    var idcount = 2 ;
    var idtable = 1 ;
    function xx(){
    var tableid = "table" + idcount ;
    //...略部分代码.....
    htmlsco ="<div><table><tr></td>";
    htmlsco += "</td></tr></table></div>"    ;
    htmlsco += "<div><table id="+tableid+"><tr><td>"    ;
    htmlsco += "<input name=\"newpoint\" type=\"button\" style=\"width: 80px\" class=\"buttom\" value=\"新增划线点\" onclick=\"addTableRow('"+tableid+"')\"/>";
    htmlsco += "</td></tr></table></div>"    ;
    htmlsco += "</fieldset>"    ;
    idcount++    ;
    $("body").append(htmlsco);
    return htmlsco ;
    }
    function addTableRow(table){
    var type = table.substring((table.length-1),table.length)  ;
    var project = "project" + type + idtable ;
    var tableRow = document.getElementById(table).insertRow();
    tableRow.setAttribute("id",project);
    //var mode = document.getElementById("mode1");这里的mode1取不到,所以随便改了个,你的代码里应该是有这个的。
    var mode="ttt";
    var modename = "mode" + type ;
    var number = "number" + type ;
    var catege = "catege" + type ;
    var newCell = tableRow.insertCell();
    newCell.innerHTML = "<label>划线项目:</label>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input type=\"text\" name="+catege+"/>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<select name="+modename+">"+mode+"</select>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input type=\"text\" name="+number+"/>" ;
    newCell = tableRow.insertCell();
    newCell.innerHTML = "<input name=\"delete\" type=\"button\" class=\"buttom\" value=\"删除\" onclick=\"delRow('"+project+"')\"/>" ;
    idtable ++;
    }</script>
    </head>
    <body>
    <input type="button" value="测试" onclick="xx();">
    </body>
    </html>