chrome setfocus文本框的问题

时间:2010-06-29 10:31:32

标签: asp.net

ScriptManager scrmgr =(ScriptManager)this.Master.FindControl(“scrmgr”);  scrmgr.SetFocus(txtSearch);

这是我的编码,它适用于所有浏览器。但我的问题是镀铬显示,如果文本框有任何值,则选择..

我想删除选择.......

1 个答案:

答案 0 :(得分:0)

我认为没有比编写自己的setFocus函数更好的解决方案了。删除选择的最简单的跨浏览器方法是临时存储文本,清除值并在之后再次设置。然后在输入控件上调用js-function焦点。 我认为这个VB.Net代码有助于得到这个想法(我不知道你是否更喜欢c#):

    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        setFocusOnControl(Me.TextBox1)
    End Sub

    Public Sub setFocusOnControl(ByVal ctrl As Control)
        Dim script As String = "" & vbCrLf & _
            "var control = document.getElementById('" & ctrl.ClientID & "');" & vbCrLf & _
            "var temptext = control.value;" & vbCrLf & _
            "control.value='';" & vbCrLf & _
            "control.value=temptext;" & vbCrLf & _
            "control.focus();" & vbCrLf & _
            "" & vbCrLf

        ScriptManager.RegisterStartupScript(Me.Page, Me.Page.GetType, "setFocusOnControlScript", script, True)
    End Sub