当前位置:编程学习 > C#/ASP.NET >>

onblur事件执行后如何重新设置焦点

onblur事件执行后再执行后台代码,页面刷新,如何重新设置焦点?
我试过在前台设置(控件.focus())无效,我能得到下一个焦点的控件ID,能在后台设置焦点吗?如何得到该控件进行设置?
在线等~~~~~~~~~~~~~ --------------------编程问答-------------------- 后台代码中重新focus

ScriptManager.RegisterStartupScript(this, this.GetType(), "", "document.getElementById('textbox1').focus()", true);    --------------------编程问答-------------------- 谢谢,但还是不行,会报错document.getElementById(....)为NULL
我前台控件ID是txtSubject
后台如你所说
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "", "document.getElementById('txtSubject').focus()", True) --------------------编程问答-------------------- ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "", "document.getElementById('<%=txtSubject.ClientID %>').focus()", True) --------------------编程问答-------------------- 编译后的Id是ClientID,你看下运行程序的源文件就很清楚了。 --------------------编程问答-------------------- 我有试过高手的写法的
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "", "document.getElementById('<%=txtSubject.ClientID %>').focus()", True)
报的错跟上面的一样,头大了 --------------------编程问答--------------------

onblur="show(this);";


function show(obj)
{
   //你的代码
   obj.focus();
}
--------------------编程问答-------------------- 右键页面 查看源码 
找到 txtSubject 
看看解析后的txtSubject是什么 --------------------编程问答-------------------- 如果不是用微软的AJAX,代码应该是:
Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "document.getElementById('txtSubject').focus()", true); --------------------编程问答-------------------- 有用了UpdatePanel的

我也有试过解析后的控件ID
ScriptManager.RegisterStartupScript(Me.Page, Me.GetType(), "", "document.getElementById('ctl00_ContentPlaceHolder1_ctl00_tmpl1_txtSubject_clientState').focus()", True)

也会报错的 --------------------编程问答-------------------- 我来详细描述一下我的情况
onblur事件中通过隐藏控件(我用了LinkButton)的click事件调用后台代码,进行一系列处理后,下一焦点因为画面刷新而失去了

我现在想做的就是onblur事件执行完后设置下一个焦点,比如TEXT框可以直接输入,不需要再点击鼠标有了焦点才可以输入有效

望大侠赐教 --------------------编程问答-------------------- 如果你想让一个控件获得焦点,执行 control.Focus() 就行了。 --------------------编程问答-------------------- 现在关键就是前台设置了没效果,后台不知道怎么设置,试了很多都搞不定啊 --------------------编程问答-------------------- 同时,在Page上使用SetFocus也可以。 --------------------编程问答-------------------- Page.ClientScript.RegisterStartupScript(Page.GetType(), "", "document.getElementById('txtSubject').focus()", true); --------------------编程问答-------------------- 如果asp.net入门书上连这个都没有,那么还是看看最基本的msdn吧:

http://msdn.microsoft.com/zh-cn/library/ms178232(v=VS.80).aspx --------------------编程问答-------------------- 前台通过document.activeElement可以得到onblur事件执行后下一个焦点的控件
前台用document.activeElement.focus();没有效果,因为在这之前调用后台代码刷新画面了 --------------------编程问答-------------------- 给你一个例子:我的是完全可以的:

<script type="text/javascript" src="JS/jquery-1.4.4.js"></script>
    <script type="text/javascript">
        $(function() {
$("input[type='text']").eq(0).blur(function() {
                $("input[type='text']:last-child").val("hello");
                $(this).focus();
            });
        });
    </script>


 <input type=text />
    <input type=text />
--------------------编程问答-------------------- 试过14楼的,刷新之后还是没有焦点了

不是15楼想象中这么简单的设置焦点问题 --------------------编程问答-------------------- 请问17楼的你有执行后台代码刷新画面吗?我是刷新了画面后才失去焦点的,不刷新是完全可以的 --------------------编程问答-------------------- 后台能不能通过一个控件ID得到这个控件的对象
比如:前台控件ID是txtSubject,我把txtSubject通过隐藏变量传到后台,后台能不能通过txtSubject找到这个控件对象obj,可以的话就可以用obj.Focus()设置焦点了 --------------------编程问答-------------------- 帮顶,帮顶,帮顶,帮顶,帮顶~~~~~~~~~ --------------------编程问答-------------------- 没有高手能帮我了啊
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,