2

我无法使用 javascript 创建多个输入文本。

我的观点是每次之前的输入完成时都会创建一个新的输入文本。(父母?)

我有一些组合框的代码,但这次我只需要输入文本框。

我怎样才能做到这一点 ?

我找到了这段代码:

<script type="text/javascript">
function addInput()
{
    var x = document.getElementById("inputs");
    x.innerHTML += "<input type=\"text\" />";
}
</script>

<input type="button" onmousedown="addInput();" />
<div id="inputs"></div>

但是对于我的问题按钮已经过时了。

我认为我的事件触发器将围绕这个“当用户单击输入文本框并且它是!=空白它创建一个新的”。

我可能需要一些 ID 来识别每个输入文本框。

干杯。

4

3 回答 3

2

JSBIn 演示

猜猜这有帮助:

   <div id="myDiv">
        <input type="text" id="txt_1" onkeydown="newTextBox(this)" />
   </div>

<script type="text/javascript">

function newTextBox(element){
   if(!element.value){
       element.parentNode.removeChild( element.nextElementSibling);
       return;
   }
   else if(element.nextElementSibling)
       return;
    var newTxt = element.cloneNode();
    newTxt.id = 'txt_'+( parseInt( element.id.substring(element.id.indexOf('_')+1)) + 1);
    newTxt.value='';
    element.parentNode.appendChild(newTxt);
}  

</script>
于 2012-12-17T12:33:22.590 回答
2

HTML 代码:

<div id="inputcontainer">
    <input type="text" name="input0" id="input0" onkeyup="addInput();" />
</div>

和 Javascript:

var currentindex = 0;
function addInput(){
    var lastinput = document.getElementById('input'+currentindex);
   if(lastinput.value != ''){
        var container = document.getElementById('inputcontainer');
        var newinput = document.createElement('input');
        currentindex++;
        newinput.type = "text";
        newinput.name = 'input'+currentindex;
        newinput.id = 'input'+currentindex;
        newinput.onkeyup = addInput;
        container.appendChild(newinput);
   }
}

仅当最后一个输入不为空时,这才会将新输入添加到列表中。

http://jsfiddle.net/HJbgS/

于 2012-12-17T11:36:44.557 回答
0

查看文本输入字段中的onchange事件。您可以使用它,就像onmousedown在按钮上使用一样。

有关示例,请参见http://www.w3schools.com/jsref/event_onchange.asp 。

然后,在您的addInput()函数中,您应该检查前一个文本字段的输入是否为 != ""。

于 2012-12-17T11:28:28.557 回答