0

我正在尝试创建动态文本框。仅当前一个文本框非空时才应创建文本框。到目前为止,我已经做到了

<!DOCTYPE html>
<html>
<head>
<script>
var i=0;
function myFunction()
{

var box = document.createElement("input");
box.type = "text";

var str=box+i;
if(i==0)
{
 document.body.appendChild(box);
}
else if(document.getElementById('str').value!=0)
{ 
 document.body.appendChild(box);  
}

i++;
}
</script>
</head>
<body>

<input type="button" id="button" onclick="myFunction()" value="Show box" />
</body>
</html>

但 str 不被识别为元素 ID。任何帮助将不胜感激。

4

2 回答 2

1
var i = 0;

function myFunction() {
    var lastInput = document.getElementById('box' + i);
    if (!lastInput) {
        // always put first input 
        document.body.appendChild(createInput(0));
    } else if (lastInput.value != 0) {
        // append another one only if previous input content is non-null
      i++;
      document.body.appendChild(createInput(i));
    }

}

function createInput(i) {
    var box = document.createElement("input");
    box.type = 'text';
    box.id = 'box' + i;
    box.value = 0;
  return box;
}
于 2013-10-08T16:14:43.697 回答
0

你的错误:

  1. str = 'box' + i;

  2. 忘记分配box.id = str

  3. 使用getElementById(str)代替getElementById('str')

于 2013-10-08T18:10:57.777 回答