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>
--------------------编程问答-------------------- 试过14楼的,刷新之后还是没有焦点了
<input type=text />
<input type=text />
不是15楼想象中这么简单的设置焦点问题 --------------------编程问答-------------------- 请问17楼的你有执行后台代码刷新画面吗?我是刷新了画面后才失去焦点的,不刷新是完全可以的 --------------------编程问答-------------------- 后台能不能通过一个控件ID得到这个控件的对象
比如:前台控件ID是txtSubject,我把txtSubject通过隐藏变量传到后台,后台能不能通过txtSubject找到这个控件对象obj,可以的话就可以用obj.Focus()设置焦点了 --------------------编程问答-------------------- 帮顶,帮顶,帮顶,帮顶,帮顶~~~~~~~~~ --------------------编程问答-------------------- 没有高手能帮我了啊
补充:.NET技术 , ASP.NET