使用JavaScript从SetFocus控制代码

时间:2013-04-15 18:14:48

标签: c# javascript jquery asp.net code-behind

我正在尝试使用registerStartupScript方法将焦点设置为页面控件(Textbox)。但是,我没有成功。这是我尝试过的:

ClientScript.RegisterStartupScript(this.GetType(), "SetFocus", "<script>document.getElementById('" + this.tbAdjust.ClientID + "').focus();</script>");

并且:

ClientScript.RegisterStartupScript(GetType(), "focus", "<script>$('" + this.tbAdjust.ClientID + "');</script>");

似乎无法得到它。看起来像一个非常直截了当的问题,如果你们都需要更多代码,请告诉我。在此先感谢您的帮助!

3 个答案:

答案 0 :(得分:4)

正常情况下,代码隐藏tbAdjust.Focus();应该有效。这是脚本。

没有Ajax

ClientScript.RegisterStartupScript(this.GetType(), "focus", 
"document.getElementById('" + this.tbAdjust.ClientID + "').focus();", true);

使用Ajax

ScriptManager.RegisterStartupScript(Page, Page.GetType(), "focus", 
"document.getElementById('" + this.tbAdjust.ClientID + "').focus();", true);

如果你想使用jQuery,你需要在前面#。

例如,"$('#" + this.tbAdjust.ClientID + "').focus();"

答案 1 :(得分:0)

jQuery的.ready()方法不起作用吗?

$(document).ready(function() {
    $('#target').focus();
});

答案 2 :(得分:0)

尝试使用Page.RegisterClientScriptBlock:

Page.RegisterClientScriptBlock("SetFocus", "<script>document.getElementById('" + this.tbAdjust.ClientID + "').focus();</script>");