我的程序中要实现这样一个功能: 
首先,焦点在textbox中,为textbox加一个onblur事件。
在onblur事件中,如果发现焦点将要跳到另一个textbox,提示;如果发现焦点将要跳到一个DropDownList中,不提示。请问:在onblur事件中,有没有办法知道焦点将要跳到哪里?

解决方案 »

  1.   

    主要是分清:鼠标是点在另一个textbox中,还是点在DropDownList中,触发了第一个textbox的onblur事件。
      

  2.   

    鼠标点到别的元素上,不是会触发onfocus嘛
    在这里做啊~
      

  3.   

    <script type="text/javascript">
    var o;
    function f(obj){
       if(obj.type == "text") {
          if(o && o!= obj){
    alert("下一个text");
            }
    o = obj;
        }else{
    o = null;
         }
    }
    </script>
    <input type="text" onfocus="f(this);" /><input type="text" onfocus="f(this);" /><input type="button" onfocus="f(this);"/>
    试试这个吧
      

  4.   

    不可能用第二个textbox上加一个onfocus事件来实现。
      

  5.   

    因为第一个textbox和DropDownList被封装在一个asp.net控件中,所以跳到DropDownList是合法的。
      

  6.   

    <script>
     function foucsDetect(){
       if(document.activeElement.tagName==="textbox"){//获取当前获取焦点的元素
        alert("your message");
      }
    }
    </script>
    <textbox  id="tb" onfocus="foucsDetect" />
    <dropDownList id="ddl" onfocus="foucsDetect"  />
      

  7.   

    也许我没说清楚。一个textbox和DropDownList被封装在一个asp.net控件combobox中,为textbox赋了一个onblur事件来检查数据正确性,鼠标点在dropdownlist会触发onblur,点在其他地方也会触发onblur事件。dropdownlist是在控件内部,所以在onblur不提示。但是焦点跳出整个控件就提示。所以我要分清焦点即将跳到哪里?
      

  8.   

    在 dropdownlist.onclick=function(e){
    if ( e && e.stopPropagation ){
    //因此它支持W3C的stopPropagation()方法
    e.stopPropagation(); 
    }else
    {
    //否则,我们需要使用IE的方式来取消事件冒泡 
    window.event.cancelBubble = true;
    return false;
    }
    };document.onclik = function(e){alert("点击了其他控件");};
      

  9.   

    textbor的oublur事件里加个标识
    在其他控件的onfocus里判断这个标识
    如果2个控件如你所说是一家的,就不提示呗
      

  10.   

    网上找了event的解释,看来是不行,在onblur事件中很多参数为null。