我正在制作一个HTML表单,用户可以使用不同的选项。我试图创建一个按钮,无限生成一个新的设置操作输入字段,名称增加,如: 第一个生成的输入应该具有input1的名称。下一个名称为input2,依此类推。
以下是一个可视示例:https://webmshare.com/ZBvw0
如何实现这一目标?
答案 0 :(得分:2)
您可以动态创建表单元素并将其附加到form
元素来解决此问题。
下面是一个简化的例子,只是为了展示主要想法。
这里的要点是:
Document.createElement() - 创建指定的HTML元素(在此实例中为表单元素)。
Node.appendChild() - 将节点添加到指定父节点(此实例中的表单元素)的子节点列表的末尾。
(function() {
var counter = 0;
var btn = document.getElementById('btn');
var form = document.getElementById('form');
var addInput = function() {
counter++;
var input = document.createElement("input");
input.id = 'input-' + counter;
input.type = 'text';
input.name = 'name';
input.placeholder = 'Input number ' + counter;
form.appendChild(input);
};
btn.addEventListener('click', function() {
addInput();
}.bind(this));
})();
input{
display: block;
}
<form id="form" action="">
</form>
<button id="btn" type="button">Click Me!</button>
答案 1 :(得分:0)
您可以使用jquery获取last项的名称。
然后,您可以使用javascript string replace方法并替换“输入”&#39;与&#39;&#39;为了得到最后一个项目的数量。
然后将其递增1.在向其添加1之前,您必须parse it as an integer。
然后使用递增的数字,为容器创建一个新的输入字段和append it。
答案 2 :(得分:0)
试试这个
HTML
<div id="demo">
</div>
<input type="button" id="add" value="Add input"/>
的Javascript
var num = 1;
document.getElementById('add').addEventListener("click",addInput);
function addInput(){
var demo = document.getElementById('demo');
demo.insertAdjacentHTML('beforeend','<div class="form-holder" style="width: 30%;"><a class="form-label">Billet type</a> <br><select name="ttype'+num+'"><option value="normal">Standard Billet</option><option value="add-on">Tilkøbs Billet</option></select></div><div class="form-holder" style="width: 31%; margin-left: 0.6%;"><a class="form-label">Billet navn</a> <br><input name="tname'+num+'" type="text" placeholder="F.eks. Entré Billet" style="width: 100%;" /></div><div class="form-holder" style="float: right; width: 18%; margin-left: 1%;"><a class="form-label">Antal</a> <br><input name="tquan'+num+'" type="text" placeholder="F.eks. 500" style="width: 100%;" /></div><div class="form-holder" style="float: right; width: 18%;"><a class="form-label">Pris (DKK)</a> <br><input name="tprice'+num+'" type="text" placeholder="F.eks. 100" style="width: 100%;" /></div> <br>');
num++;
}