Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/428.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在动态生成的字段中维护输入值_Javascript_Html_Forms_Dynamically Generated - Fatal编程技术网

Javascript 在动态生成的字段中维护输入值

Javascript 在动态生成的字段中维护输入值,javascript,html,forms,dynamically-generated,Javascript,Html,Forms,Dynamically Generated,我有下面的JavaScript,它动态生成文本输入并将它们插入到div中。这段代码运行良好,但是如果我在字段中键入文本,然后单击按钮添加另一个字段,我将丢失在第一个字段中键入的文本 我做了一个-但由于某种原因它不起作用。不过,同样的代码在我的浏览器中也可以正常工作 下面是有问题的函数: var optCount = 0; function addOption(type){ var cont = document.getElementById('new'+type+'Opts');

我有下面的JavaScript,它动态生成文本输入并将它们插入到div中。这段代码运行良好,但是如果我在字段中键入文本,然后单击按钮添加另一个字段,我将丢失在第一个字段中键入的文本

我做了一个-但由于某种原因它不起作用。不过,同样的代码在我的浏览器中也可以正常工作

下面是有问题的函数:

var optCount = 0;
function addOption(type){
    var cont = document.getElementById('new'+type+'Opts');
    cont.innerHTML = cont.innerHTML + "<span style='display:block;' id='opt" + optCount + "'><input type='text' style='width:80%;' /><a href='#' style='color:red; text-decoration:none; font-size:.6em;' onclick=\"return delOpt('opt" + optCount + "');\">[x]</a><br /></span>";
    optCount++;
    return false;
}
var optCount=0;
函数addOption(类型){
var cont=document.getElementById('new'+type+'Opts');
cont.innerHTML=cont.innerHTML+“
”; optCount++; 返回false; }

添加其他字段时,如何维护现有字段的值?

不要每次都替换div的全部内容。相反,只需创建新选项并附加它

var cont = document.getElementById("new"+type+"Opts");
var span = document.createElement('span');
span.className = 'block';
span.id = "opt" + optCount;
span.innerHTML = "<input type='text' class='width80' /><a href='#' class='dellink' onclick=\"return delOpt('opt" + optCount + "');\">[x]</a><br />";
optCount++;
cont.appendChild(span);
var cont=document.getElementById(“新建”+类型+“选项”);
var span=document.createElement('span');
span.className='block';
span.id=“opt”+optCount;
span.innerHTML=“
”; optCount++; 续:儿童(span);

它找不到
addOption
,因为它只在文档就绪时添加,并且在加载dom时被引用。只要将左上角的JSFIDLE选项更改为“No wrap-in”,代码就会执行。(注意,这并不能解决你的问题,只是解决了你的问题)@ScottMermelstein谢谢!谢谢,这正是我需要的