在使用JavaScript创建文本框后,将Focus设置为JavaScript中的文本框?

时间:2009-03-13 00:09:31

标签: javascript focus

所以我刚刚用这样的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为null  txtBox.focus();

最后一行不起作用。创建文本框后,我无法设置焦点。有没有办法这样做?

6 个答案:

答案 0 :(得分:1)

如果您检查txtBox的值,您会看到它未定义。您尝试获取标识为tbDist1 + (len-1)的元素,但您创建了一个标识为tbDis1 + len的元素。

答案 1 :(得分:1)

哼哼......你正在创建文本框,只是说id="tbDis1' + len + '",但是你通过'tbDist1' + (len - 1)来访问它...为什么?我不确定上下文,但是如果有的话,那会尝试集中以前添加的文本框。此外,您是使用tbDis创建的,并尝试使用tbDist来实现它。在那里缺少t。将ID设置为id="tbDist1' + len + '"并使用'tbDist1' + (len)访问它应该可以解决问题。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

呃,这看起来像是一个错字。您要求(afaict)tbDist1,但要创建tbDis1

[编辑:marius还发现了我错过的len vs len-1。]

答案 4 :(得分:0)

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

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

答案 5 :(得分: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>