You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript动态创建div及表单在script标签中不生效问题咨询

问题原因

你已经完成了所有动态表单元素的创建逻辑,但缺少将生成的div节点挂载到页面现有DOM树的步骤,你创建的所有元素仅存在于JS内存中,不会被渲染到页面上。

修复方案
  1. 首先在你的HTML页面中提前准备一个用于容纳动态生成内容的容器,比如:
<div id="formContainer"></div>
  1. 在addFields函数的末尾,将你创建的createDiv追加到上述容器中,同时可以补充删除按钮的点击逻辑,修复后的完整JS代码如下:
var id = 1;
var divID = 1;
function addFields() {
    var createDiv = document.createElement("div");
    createDiv.setAttribute("id","myDiv_"+divID);
    var fieldsName = ['First Name', 'Last Name', 'Email', 'Age'];
    var idArr = ['fname', 'lname', 'email', 'age'];

    for(var i = 0; i < fieldsName.length; i++) {
        var input = document.createElement("input");
        input.name = fieldsName[i];
        input.type = "text";
        input.placeholder = fieldsName[i];
        input.id = idArr[i] + "_" + id;
        id++;
        createDiv.appendChild(input);
    }
    var delete_Row_button = document.createElement("button");
    var deleteText = document.createTextNode("Delete Row");
    delete_Row_button.appendChild(deleteText);
    // 补充删除按钮点击逻辑
    delete_Row_button.onclick = function() {
        this.parentElement.remove();
    }
    createDiv.appendChild(delete_Row_button);
    divID++;
    var br = document.createElement("br");
    createDiv.appendChild(br);
    // 核心新增:将创建好的div挂载到页面容器中
    document.getElementById('formContainer').appendChild(createDiv);
}
额外说明

如果你不需要单独指定容器,也可以直接挂载到body下,将最后一行替换为document.body.appendChild(createDiv)即可。

内容的提问来源于stack exchange,提问作者Usman Jutt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 04:30:04