5

我正在构建一个包含输入列表的 Web 表单。到现在为止还挺好。

但是,如何添加链接/按钮以将另外 5 个字段添加到列表中。例如:

<input>
<input>
<input>
<input>

<a href="" onclick="">Add 10 more fields</a>

我在这个网站上浏览了许多类似的 q,但似乎没有一个描述如何添加多个字段。

谢谢你的帮助,

哈雷

编辑:感谢大家的帮助,看起来 jquery append 是要走的路。但是,我很欣赏不使用 jquery 的替代方案。

4

7 回答 7

6
  $("#anyDiv").html('<input id="id1"/>');

……

 $("#anyDiv").append('<input id="id2"/>');
于 2012-07-13T16:35:28.260 回答
2

这是一个js fiddle,显示了使用 jQuery 的append()函数添加 10 个输入的示例。我建议每次点击只做一次添加,就像 user1301840 的例子一样。

HTML

<div id="inputList"></div>
<input type="button" value="Add 10 Inputs" id="addInputs" />​

Javascript

$('#addInputs').click(function() {
    for (i = 0; i < 10; i++) {
        $('#inputList').append('<input type="text" />');

    }
});​
于 2012-07-13T16:36:22.143 回答
2

虽然您已经有了答案,但我想我会尝试提供一个非 jQuery 解决方案:

function addInput(insertAt, formEl, num, inputType, defaultVal) {
    console.log(formEl);
    if (!formEl) {
        return false;
    }
    else {
        num = num ? num : 5;
        var fieldset = document.createElement('fieldset'),
            newInput;
        for (var i = 0; i < num; i++) {
            newInput = document.createElement('input');
            newInput.value = defaultVal || '';
            newInput.type = inputType || 'text';
            fieldset.appendChild(newInput);
        }
        formEl.insertBefore(fieldset, insertAt);
    }
}

var formEl = document.getElementById('theForm'),
    aElem = document.getElementById('aElement');

if (window.addEventListener) {
    // up to date browsers
    aElement.addEventListener('click', function() {
        addInput(this, formEl, 10);
    }, false);
} else if (window.attachEvent) {
    // legacy IE, <9
    aElement.attachEvent('onclick', function() {
        addInput(this, formEl);
    });
}​

JS 小提琴演示

我没有要测试的 IE,但是上面应该使用 IE < 9 使用attachEvent后备,并且 >= 9,我认为,实现了标准addEventListener()

参考:

于 2012-07-13T17:14:45.557 回答
1

尝试使用 JQuery .append()函数

$("a").click(function(e){
 $("form").append("<input />");
})
于 2012-07-13T16:33:57.793 回答
1

是的,jquery 是去这里的方式。

$("<input type='text'>").appendTo("#someContainer");

祝你好运。

于 2012-07-13T16:39:36.980 回答
0

以下示例在单击链接时添加输入框:

<div id="start">
    <input/><br/><br/>
</div> 
<a href="#" id="box">Add more fields</a>

$("#box").click(function(){
    var add="";
    add+='<input/>'+'<br/>'+'</br/>';
    $("#start").append(add);
});
于 2013-06-25T06:05:46.290 回答
0

<script type='text/javascript'>
    var counter = 1;
    var limit = 3;
    function addInput(divName) {

        var newdiv = document.createElement('div');
        newdiv.innerHTML = "<br><input type='text' name='myInputs" + counter + "'> <input type='text' name='myInputs" + counter + "'> <select><option value='88888'>888888888</option></select>";
        document.getElementById(divName).appendChild(newdiv);
        counter++;
    }
</script>

<form method="POST">
    <div id="dynamicInput">

        <input type="button" value="Add another text input" onclick="addInput('dynamicInput');">
</form>

于 2016-02-24T17:04:43.067 回答