从动态表单中删除多个元素的小型Javascript问题

卡尔

如果可能的话,有人可以告诉我我在做什么错吗?

我们在php页面上有一个带有javascript的基本表单,当单击按钮时会创建4个表单字段。

如果多次单击该按钮,它将继续创建4列的行。问题是,如果有人单击该按钮,则试图删除该行(4个元素),我只能在需要删除该行中所有4个元素(输入)的地方删除它,

JAVASCRIPT

var i = 0; /* Set Global Variable i */
function increment() {
    i += 1; /* Function for automatic increment of field's "Name" attribute. */
}

//Function to Remove Form Elements Dynamically
function removeElement(parentDiv, childDiv) {
    if (childDiv == parentDiv) {
        alert("The parent div cannot be removed.");
    } else if (document.getElementById(childDiv)) {
        var child = document.getElementById(childDiv);
        var parent = document.getElementById(parentDiv);
        parent.removeChild(child);
    } else {
        alert("Child div has already been removed or does not exist.");
        return false;
    }
}

//Functions that will be called upon, when user click on the Name text field.
function nameFunction() {
    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Name");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    increment();
    y.setAttribute("Name", "quantityordered_" + i);
    r.appendChild(y);
    g.setAttribute("onclick", "removeElement('myForm','id_" + i + "')");
    r.appendChild(g);
    r.setAttribute("id", "id_" + i);
    document.getElementById("myForm").appendChild(r);


    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "QTY Delivered");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    increment();
    y.setAttribute("Name", "quantitydelivered_" + i);
    r.appendChild(y);
    g.setAttribute("onclick", "removeElement('myForm','id_" + i + "')");
    r.appendChild(g);
    r.setAttribute("id", "id_" + i);
    document.getElementById("myForm").appendChild(r);

    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Description");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    increment();
    y.setAttribute("Name", "description_" + i);
    r.appendChild(y);
    g.setAttribute("onclick", "removeElement('myForm','id_" + i + "')");
    r.appendChild(g);
    r.setAttribute("id", "id_" + i);
    document.getElementById("myForm").appendChild(r);

    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Price ie; £15.00");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    increment();
    y.setAttribute("Name", "price_" + i);
    r.appendChild(y);
    g.setAttribute("onclick", "removeElement('myForm','id_" + i + "')");
    r.appendChild(g);
    r.setAttribute("id", "id_" + i);
    document.getElementById("myForm").appendChild(r);
}

//Functions that will be called upon, when user click on the Reset Button.
function resetElements() {
    document.getElementById('myForm').innerHTML = '';
}

的HTML

<div class="col-md-12" style="margin-top:20px; padding-left:30px;">
    <button type="button" onclick="nameFunction()" class="btn btn-info">
      <i class="fa fa-plus"></i> 
      Add another Item
    </button>
</div>

我希望这有帮助?请注意Iam是JS的新手,并认为这将是深入研究etc的绝佳项目。

在此先非常感谢任何人可以提供的任何建议

Mykola Prymak

将所有4个输入插入一个“容器”中-您可以通过删除一个容器来删除所有这些输入。

var i = 0; /* Set Global Variable i */
function increment() {
    i += 1; /* Function for automatic increment of field's "Name" attribute. */
}

//Function to Remove Form Elements Dynamically
function removeElement(childId) {
    // Simplify form - only need a childId
    if (document.getElementById(childId)) {
        var child = document.getElementById(childId);
        child.parentNode.removeChild(child);
    }
}

//Functions that will be called upon, when user click on the Name text field.
function nameFunction() {

    // Create a container for all 4 inputs
    var container = document.createElement('div');
    var containerId = 'id_' + i;
    container.id = containerId;
    increment();

    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Name");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    g.setAttribute("onclick", "removeElement('" + containerId + "')");
    y.setAttribute("Name", "quantityordered_" + i);
    r.appendChild(y);
    r.appendChild(g);
    container.appendChild(r);
    increment();


    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "QTY Delivered");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    g.setAttribute("onclick", "removeElement('" + containerId + "')");
    y.setAttribute("Name", "quantitydelivered_" + i);
    r.appendChild(y);
    r.appendChild(g);
    container.appendChild(r);
    increment();

    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Description");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    g.setAttribute("onclick", "removeElement('" + containerId + "')");
    y.setAttribute("Name", "description_" + i);
    r.appendChild(y);
    r.appendChild(g);
    container.appendChild(r);
    increment();

    var r = document.createElement('span');
    var y = document.createElement("INPUT");
    y.setAttribute("type", "text");
    y.setAttribute("placeholder", "Price ie; £15.00");
    var g = document.createElement("IMG");
    g.setAttribute("src", "img/delete.png");
    g.setAttribute("onclick", "removeElement('" + containerId + "')");
    y.setAttribute("Name", "price_" + i);
    r.appendChild(y);
    r.appendChild(g);
    container.appendChild(r);
    increment();

    // Append container to form
    document.getElementById("myForm").appendChild(container);
}

//Functions that will be called upon, when user click on the Reset Button.
function resetElements() {
    document.getElementById('myForm').innerHTML = '';
}
<div id="myForm" class="col-md-12" style="margin-top:20px; padding-left:30px;">
    <button type="button" onclick="nameFunction()" class="btn btn-info">
      <i class="fa fa-plus"></i> 
      Add another Item
    </button>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从动态表单中删除多个元素的小型Javascript问题

来自分类Dev

Javascript-从动态创建的数组中删除特定元素

来自分类Dev

从动态列表中删除元素

来自分类Dev

javascript-动态删除表单元素

来自分类Dev

如何从AngularJS动态表单中删除元素?

来自分类Dev

从动态添加的表单中获取文件

来自分类Dev

jQuery如何从动态创建的div中添加/删除动态创建的元素?

来自分类Dev

从动态数组中检索元素

来自分类Dev

从动态表中删除行

来自分类Dev

从动态数组中删除元素时,需要记忆后重新分配吗?

来自分类Dev

PHP-从动态表单上传图像-文件命名问题

来自分类Dev

SQL选择行并从动态多个表中删除/更新

来自分类Dev

Codeignitor 从动态表单上传多个输入文件

来自分类Dev

从动态表单获取数据到javascript中,然后将其调用返回

来自分类Dev

从动态表单获取数据到javascript中,然后将其调用返回

来自分类Dev

遍历并删除Javascript中的表单元素

来自分类Dev

如何删除在Javascript中动态添加的元素

来自分类Dev

如何动态删除javascript中的元素?

来自分类Dev

从动态生成的列表中动态选择元素

来自分类Dev

从JavaScript中的多个元素中删除类

来自分类Dev

从动态数组中删除一个动态对象

来自分类Dev

从动态创建的VB表单的控件中获取价值

来自分类Dev

如何从动态创建的输入中过帐表单数据?

来自分类Dev

如何从动态构建的表单中获取数据?

来自分类Dev

JavaScript从多个选择框中删除元素

来自分类Dev

如何动态地从Firestore阵列中删除多个元素?

来自分类Dev

我应该从动态指针中删除移动吗

来自分类Dev

如何选择从动态列表中删除特定的Li标签?

来自分类Dev

从动态文本字段中删除字符

Related 相关文章

  1. 1

    从动态表单中删除多个元素的小型Javascript问题

  2. 2

    Javascript-从动态创建的数组中删除特定元素

  3. 3

    从动态列表中删除元素

  4. 4

    javascript-动态删除表单元素

  5. 5

    如何从AngularJS动态表单中删除元素?

  6. 6

    从动态添加的表单中获取文件

  7. 7

    jQuery如何从动态创建的div中添加/删除动态创建的元素?

  8. 8

    从动态数组中检索元素

  9. 9

    从动态表中删除行

  10. 10

    从动态数组中删除元素时,需要记忆后重新分配吗?

  11. 11

    PHP-从动态表单上传图像-文件命名问题

  12. 12

    SQL选择行并从动态多个表中删除/更新

  13. 13

    Codeignitor 从动态表单上传多个输入文件

  14. 14

    从动态表单获取数据到javascript中,然后将其调用返回

  15. 15

    从动态表单获取数据到javascript中,然后将其调用返回

  16. 16

    遍历并删除Javascript中的表单元素

  17. 17

    如何删除在Javascript中动态添加的元素

  18. 18

    如何动态删除javascript中的元素?

  19. 19

    从动态生成的列表中动态选择元素

  20. 20

    从JavaScript中的多个元素中删除类

  21. 21

    从动态数组中删除一个动态对象

  22. 22

    从动态创建的VB表单的控件中获取价值

  23. 23

    如何从动态创建的输入中过帐表单数据?

  24. 24

    如何从动态构建的表单中获取数据?

  25. 25

    JavaScript从多个选择框中删除元素

  26. 26

    如何动态地从Firestore阵列中删除多个元素?

  27. 27

    我应该从动态指针中删除移动吗

  28. 28

    如何选择从动态列表中删除特定的Li标签?

  29. 29

    从动态文本字段中删除字符

热门标签

归档