首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppendChild表单/表格[Javascript]

AppendChild表单/表格[Javascript]
EN

Stack Overflow用户
提问于 2012-08-23 00:27:36
回答 1查看 1.8K关注 0票数 0

我的主要问题是,我有一个非常好的设置能力来添加/删除表单,然而,问题是,执行一种类型的追加将使输入显示(完全按照我想要的方式),而不是实际添加到表单中,而另一种类型使表单不可见,但您可以在$_POST上看到它弹出。

代码语言:javascript
复制
<script language="javascript">
    function addRow(tableID,texting,values) {

        var table = document.getElementById(tableID);
        var rowCount = table.rows.length;
        var row = table.insertRow(rowCount);

        var cell1 = row.insertCell(0);
        var element1 = document.createElement("input");
        element1.type = "checkbox";
        cell1.appendChild(element1);

        var cell2 = row.insertCell(1);
        cell2.innerHTML = texting+":";

        var cell3 = row.insertCell(2);
        var element2 = document.createElement("input");
        element2.type = "text";
        element2.name = texting; // Change this dummy.
        if(tableID == "levelup")
            element2.name += "rate";
        if(values != "" && values != null && values != "undefined")
            element2.value = values;
        cell3.appendChild(element2); //This isn't hidden but no works, wat?
        //document.forms[1].appendChild(element2); //This works but is hidden
        //document.forms[1].write("hi!");

    }



    function deleteRow(tableID) {
        try {
            var table = document.getElementById(tableID);
            var rowCount = table.rows.length;

            for(var i=0; i<rowCount; i++) {
                var row = table.rows[i];
                var chkbox = row.cells[0].childNodes[0];
                if(null != chkbox && true == chkbox.checked) {
                    table.deleteRow(i);
                    rowCount--;
                    i--;
                }


            }
        }catch(e) {
            alert(e);
        }
    }
</script>
<html>
    <table>
        <tr><td>Add statistic:</td></tr>
        <form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data"> 
            <tr><td><input type="text" name="addme"><input type="button" value="add" onclick="addRow('formulas',document.forms[0].addme.value); addRow('levelup',document.forms[0].addme.value,'1+'+document.forms[0].addme.value)"/></td><td><input type="button" value="Delete" onclick="deleteRow('formulas'); deleteRow('levelup')"/></td></tr>
        </form>
        <form action="<?php echo $PHP_SELF; ?>" method="post" enctype="multipart/form-data">  
            <tr><td>Formula name:</td><td><input type="text" name="formulaname"></td></tr>
            <tr><td>Statistics at level 1(required)</td></tr>
            <tr>
            <table>
                <tr><td>Level 1:</td></tr>
                <tr><td>Move speed:</td><td><input type="text" value="1" name="movespeed"></td></tr>
                <tr><td>Stats:</td></tr>
                <tr><td><table id="formulas"></table></td></tr>
            </table></tr>
            <tr><td>Level up Formula Rates</td></tr>
            <table>
                <tr><td>Move speed:</td><td><input type="text" value="Mov+1" name="Movrate"></td></tr>
                <tr><td>Experience:</td><td><input type="text" value="(Exp*0.25)*Exp*Lvl+(0.25*Mov)" name="Exprate"></td></tr>
                <tr><td><table id="levelup"></table></td></tr>
            </table>
            <tr><td><input type="submit"  value="Save"/></td></tr>
        </form>
    </table>
</html>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-23 22:34:35

这不起作用,因为您在表单外部追加了一个新行。将表拆分为两个单独的表,一个用于第一个表单,另一个用于第二个表单。然后,将表包装在当前位于其中的表单标记中。

结果应具有以下结构:

代码语言:javascript
复制
<form>
  <table> (add statistics form) </table>
</form>
<form>
  <table> (formulas) </table>
</form>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12077486

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档