else if (answer is TextAnswer)
{
this.Sourcecode.AppendLine("\t\t\t\t<textarea id='" + id + "' name='" + id + "' value='' style='position: absolute; "
+ "top: " + top + "px; left: " + left + "px; height: " + height + "px; width: " + width + "px; "
+ "visibility:hidden; z-index: 2; resize: none;'></textarea>");
这行代码在我的网络表单上创建一个TextBox控件,但问题是没有设置焦点,我想设置焦点。
怎么做?
这行代码完全正常,我的意思是当我点击我的网络表单时,它会创建一个控件。现在当我点击它时,它会创建一个控件来写一些东西,然后我必须再次点击它,所以我只想在我点击焦点时应该在那里。
答案 0 :(得分:2)
尝试在您显示的代码之后添加此内容。这假设您可以看到Id。
id.Focus();
如果您尚未将ID插入DOM但您找不到该元素,那么另一种解决方案可能是使用javascript来完成这项工作。
var script = "<script>document.getElementById("+id+").focus();</script>";
Page.ClientScript.RegisterStartupScript(this.GetType(), id, script, false);
答案 1 :(得分:0)
您可以使用autofocus
中的textarea
属性。请记住,这将需要HTML5支持。您似乎在C#应用程序中使用默认Web控件?
this.Sourcecode.AppendLine("\t\t\t\t<textarea autofocus id='" + id + "' name='" + id + "' value='' style='position: absolute; "
+ "top: " + top + "px; left: " + left + "px; height: " + height + "px; width: " + width + "px; "
+ "visibility:hidden; z-index: 2; resize: none;'></textarea>");
检查以下示例: http://jsfiddle.net/9m0tctzg/
另一种选择是在那里注入一些JS,如果上面的代码不是一个选项。
<script> document.getElementById('idhere').focus(); </script>