javascript - 添加新输入字段时如何保存现有输入字段中的值?

标签 javascript html dynamic input

这就是我的程序的主体:

<form id = "input">
<input id = "0" >
</form>

<p onclick = "add()"> Add Another</p>

点击上面的

会执行以下函数:

 var inputArea = document.getElementById("input");
        next = 1;
    function add(){

        inputArea.innerHTML+= "  <input id = " + next+ ">" ;

接下来是新输入字段的 ID。在这种情况下,由于 0 已经存在,因此 next 的值为 1。 我遇到的一个问题是,添加新的输入字段后,所有现有输入字段中的值都会丢失。如何保存这些值?我的尝试是将此代码放在函数 add() 中:

    for (i=0;i<next;i++)
    {inputs[i] = document.getElementById(i);
    inputV[i]= inputs[i].value;
inputs[i].value = inputV[i];}

但这不起作用..

      var inputArea = document.getElementById("input");
            next = 1;
        function add(){
            
            inputArea.innerHTML+= "  <input id = " + next+ ">" ;
       var inputs = new Array();
       var inputV = new Array();
       for (i=0;i<next;i++)
            {inputs[i] = document.getElementById(i);
            inputV[i]= inputs[i].value;
        inputs[i].value = inputV[i];}

        next++;
        }
     
<form id = "input">
        <input id = "0" >
        </form>
       
        <p onclick = "add()"> Add Another</p>

    

最佳答案

您可能想像这样动态地将元素添加到 DOM 树

function add() {
    var form = document.getElementById("input");
    var input = document.createElement("input");
    form.appendChild(input);
}

您所做的事情的问题是,当您在输入字段中写入时,所做的更改不会在HTML代码中表示,而仅在浏览器的内存中表示。因此,如果您将文本添加到 form.innerHTML 的代码中,浏览器将重新解释表单内的文本,这将是

<input id="0"> <input id="1"> ...

这将导致显示两个文本类型的空输入

编辑:然后您可以通过添加您的 id 标签

function add() {
    var form = document.getElementById("input");
    var input = document.createElement("input");
    input.id = someValue;
    form.appendChild(input);
}

注意请以某种合乎逻辑的方式缩进您的代码。

关于javascript - 添加新输入字段时如何保存现有输入字段中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33023815/

相关文章:

javascript - jQuery UI 可拖动中的错误

php - 如何在单个 div 中隔离 php 查询

mysql使用IN动态sql

python - 如何在运行时动态更改实例的基类?

java - 使用selenium在动态网页中查找元素

javascript - Google map 中未显示 InfoWindow 关闭图标

javascript - vue.js 入门不起作用

javascript - 提前退出 useEffect 钩子(Hook)导致 'Error: too many re-renders'

html - 奇怪的 chrome 媒体查询行为

html - flex 对齐内容 :space-between not working