0

所以我刚刚用 JavaScript 创建了一个文本框,如下所示:

编辑:添加了 len 变量

var len = tbl.rows.length;
                     var rtb = tbl.insertRow(len);
                     var cName = rtb.insertCell(0);
                     var cDis = rtb.insertCell(1);
                     var cDur = rtb.insertCell(2);
                     cName.innerHTML = '<input type="text"  name="tbName1' + len + '" value="' + selected_text + '" >';
                     cDis.innerHTML = '<input type="text" name="tbDis1' + len + '" id="tbDis1' + len + '" >';
                     cDur.innerHTML = '<input type="text"  name="tbDur1' + len + '" >';
                     var txtBox = document.getElementById('tbDist1' + len);
                     txtBox.focus();

编辑:将第二行更改为最后一行。仍然得到这个错误: txtBox is null txtBox.focus();

最后一行不起作用。创建文本框后,我无法为其设置焦点。有什么办法吗?

4

6 回答 6

1

如果你检查你的值,txtBox你会发现它是未定义的。您尝试获取具有 id 的元素tbDist1 + (len-1),但您创建了具有 id 的元素tbDis1 + len

于 2009-03-13T00:13:23.347 回答
1

嗯...您正在通过说创建文本框,id="tbDis1' + len + '"但您正在通过执行来访问它'tbDist1' + (len - 1)...为什么?我不确定上下文,但这会尝试关注先前添加的文本框(如果有的话)。此外,您正在创建它tbDis并尝试使用tbDist. 里面少了一个t。将 id 设置为id="tbDist1' + len + '"并访问它'tbDist1' + (len)应该可以解决问题。

于 2009-03-13T00:14:46.027 回答
0

不知道它应该如何工作:你之前有 tbDis 和 len,然后是 tbDist(注意:t)和 len-1 之后。奇怪的... :-)

于 2009-03-13T00:13:25.343 回答
0

Err,它看起来像一个错字。您要求 (afaict) tbDist1,但正在创建tbDis1.

[编辑:马吕斯也发现了我len错过len-1的。]

于 2009-03-13T00:13:38.090 回答
0

我无法调用文本框和 idk。为什么?!!

--> var txtBox = document.getElementById('tbDist1' + len);

于 2009-12-07T06:20:18.677 回答
0

我有这个简单的代码:

<html>
<body>
<form id="f1">

<asp:Label id="tt"  runat="server" Text="Label" onclick="lblClick()"></asp:Label>

</form>
<script type ="text/javascript">

          function lblClick() {
             document.forms[0].tt.Text ="java";// here is the problem .. and idk why?
          }
</script>
</body>
</html>
于 2009-12-07T07:03:16.517 回答