如何从javascript动态创建文本框

时间:2013-08-20 04:31:49

标签: javascript jquery html

我正在尝试在<div id="screens"> </div>内创建文本框。我有一个下拉菜单,我选择了要创建的文本框的数量。

我在这里写的JavaScript代码不起作用:

代码:

function create(param) {
    document.getElementById("screens").innerHTML="";          
    for(var i = 0; i < param; i++) {
        alert(i);
        document.write('<input type="text" name="Fname">');
    }
}

这是通过清除当前页面的所有内容来添加文本框,但我希望将文本框添加到<div id="screen"> </div>。我怎么能这样做?

5 个答案:

答案 0 :(得分:5)

尝试这样的事情:

function create(param) {
    var s= "";
    for(var i = 0; i < param; i++) {
        s+= '<input type="text" name="Fname">'; //Create one textbox as HTML
    }
    document.getElementById("screens").innerHTML=s;
}

答案 1 :(得分:1)

由于你在问题中标记了jQuery,我假设你正在使用jQuery。

function create(param) {
    'use strict';

    var i;

    $("#screens").empty();

    for(i = 0; i < param; i += 1) {
        $('#screens').append('<input type="text" name="Fname">');
    }
}

jsFiddle

纯JavaScript实现如下所示:

function create(param) {
    'use strict';

    var i, target = document.getElementById('screens');
    target.innerHTML = '';

    for(i = 0; i < param; i += 1) {
        target.innerHTML += '<input type="text" name="Fname">';
    }
}

jsFiddle

答案 2 :(得分:0)

function create(param) {
    var screens = document.getElementById('screens'),
        innerHTML = '',
        i;

    for (i = 0; i < param; i += 1) {
        alert(i);
        innerHTML += '<input type="text" name="Fname">';
    }

    screens.innerHTML = innerHTML;
}

答案 3 :(得分:0)

function create(param) {
    var target = document.getElementById('screens'),
        oFrag=document.createDocumentFragment();

    target.innerHTML = '';

    for (var i = 0; i < param; i++) {
        var iptNode = document.createElement("input");
        iptNode.setAttribute("type", "text");
        iptNode.setAttribute("name", "Fname");
        oFrag.appendChild(iptNode);
    }

    target.appendChild(oFrag);
}

答案 4 :(得分:0)

<script>
var newInput4=document.createElement("input");
newInput4.className="form-control ";
newInput4.name="totalunit"+instance;
newInput4.placeholder="Unit";   
newInput4.type="text";
</script>