简体   繁体   English

Javascript 如何添加输入文本并保留其他字段的值

[英]Javascript how to add input text and keep other fields with value

I am writing javascript function, which is adding fields as many as user want.我正在写javascript function,它正在添加用户想要的字段。 Only one issue in my code: if user already something put to input, my code clean everything.我的代码中只有一个问题:如果用户已经输入了一些东西,我的代码会清除所有内容。 Is it a way how to get HTML with value that user put?这是一种如何获得HTML与用户输入的价值的方法吗? Or how to add new input and keep records in neighbors' fields.或者如何添加新输入并将记录保存在邻居的字段中。

var uniqid=ID(); 
document.getElementById("variablesContainer").outerHTML+='<div class="input-group" id="'+uniqid+'"><input type="text" class="form-control" placeholder="Enter new name of variable" aria-describedby="basic-addon1" style="width: 200px;"></div>';


var ID = function () {
  return '_' + Math.random().toString(36).substr(2, 9);
};

PS By policy I can't use JQuery and other framework. PS 根据政策,我不能使用JQuery和其他框架。 Only native Javascript .只有原生Javascript

CodePen link: https://codepen.io/pranaynailwal/pen/KKaPRGe?editors=1111 CodePen 链接: https://codepen.io/pranaynailwal/pen/KKaPRGe?editors=1111

<div id="inputWrapper">
  <button onclick="addElem()" id="addNew">Add New Input</button>
  <ul id="insertInputs">
  </ul>
</div>

function getId() {
  return "_" + Math.random().toString(36).substr(2, 9);
}
var inputIds = [];
function addElem() {
  console.log("create element");
  var uniqid = getId();
  inputIds.push(uniqid); //adding here for reference
  document
    .getElementById("insertInputs")
    .insertAdjacentHTML(
      "beforeend",
      '<div class="input-group" id="' +
        uniqid +
        '"><input type="text" class="form-control" placeholder="Enter new name of variable" aria-describedby="basic-addon1" style="width: 200px;"></div>'
    );
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM