现在我有两个textbox,我想通过先输后输来做不同的处理,我的想法是通过对焦点的if()判断来实现,可是foucs()是void类型的 而if()是bool类型的 有错误,哪个大虾能帮我解决这个问题 谢谢啦
在客户端处理
在JS 里面自己写__doPostBack('txt','');
function invoke(obj)
{
switch(obj.id)
{
case 'txt1':
__doPostBack('btn','txt1');
break;
case 'txt2':
__doPostBack('btn','txt2');
break;
case 'txt3':
__doPostBack('btn','txt3');
break;
}
}
<a id='btn' onclick='txt_TextChanged'style='display:none'></a>
<input type='text' id='txt1' onblur='invoke(this)' />//触发失去焦点事件
<input type='text' id='txt2' onblur='invoke(this)' />//触发失去焦点事件
<input type='text' id='tx3' onblur='invoke(this)' />//触发失去焦点事件
在TextChanged 的事件里面获取
protected void TextChanged(object sender,EventArgs e)
{
var flag=Request["__EVENTARGUMENT"];
switch(flag)
{
case "txt1":
break;
case "txt2":
break;
case "txt3":
break;
}
}
服务器端的foucs方法只是输出一段JS,给客户端文本框加上焦点,但是HTTP是无状态的,在服务器端没法用IF来判断哪个控件正在获取焦点,客户端用JS可以。http://www.docin.com/p-49026497.html
实现肯定是在客户端实现的。在服务端是无法实现判断的。
document.activeElement 得到当前焦点控件元素。只要比较它和特定对象就知道是不是焦点控件了。