所以我刚刚用这样的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();
最后一行不起作用。创建文本框后,我无法设置焦点。有没有办法这样做?
答案 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>