我有一个文本框和一个按钮 文本框中有一个失去焦点的事件
点击按钮有一个单击事件,这两个事件触发都会弹出同一个弹出框,现在我先光标聚焦于文本框,然后点击按钮
弹出了两个弹出框,我怎么控制在点击按钮的时候失去焦点的事件失去,
急用!!!!!

解决方案 »

  1.   

    要么把失去焦点事件删掉要么onblur=""。
      

  2.   

    一次配对的mousedown+mouseup才是一次click, 
    当onblur里有alert时, 
    button上只有mousedown,无法有配对的mouseup, 
    所以click事件不会被触发。 将button的onclick改成onmousedown会有你所希望的效果。 <form   name= "form1 "   method= "post "> 
    <input   type=text   name= "i1 "   onblur= "alert( 'blur '); "   value= " "> 
    <input   type=text   name= "i2 "   value= " "> 
    <input   type=button   value= "ok "   onmousedown= "alert( 'btn '); "> 
    </form> 
      

  3.   

    onblur肯定在onclick前面调用的,所以想onclick的时候删除onblur是不可能的,只能另寻他径。
    建议一个方法,给button加上onmouseover和onmouseout事件
    onmouseover的时候删除onblur事件,onmouseout的时候在将onblur事件加上,onclick事件不变
    希望对你有帮助
      

  4.   


    非常负责任的告诉你,在IE中你的理论是对的, 因为IE中只有一个全局的event,
    但是在非IE中你就不对了,我刚刚在ff上做过实验.你也可以自己试一下
      

  5.   

    我试了,ie和ff都一样啊,如果文本框先获得焦点,然后取点按钮,那么肯定是先激发文本框的onblur事件
    一下代码可以去试验一下
    <html>
    <body>
    <input name="txt" value="zhangsan" onblur="alert('txt')" /><br />
    <input type="button" name="btn" value="ok" onclick="alert('btn')" />
    <body>
    </html>
      

  6.   


    <!DOCTYPE>
    <html>
    <head>
    <title></title>
    <script type='text/javascript'>
    function $(id){
    return document.getElementById(id);
    }
    window.onload = function(){
    $('txt').onblur = function(){
    popupDialog();
    $('btn').onclick = '';// 这里把按钮的click事件清空了,但是后面还是打开两个窗口
    };
    $('btn').onclick = function(){
    popupDialog();
    };
    var popupDialog = function(){
    window.showModalDialog('');
    };
    }
    </script>
    </head>
    <body>
    <input type="text" id="txt" />
    <button type='button' id="btn">button</button>
    </body>
    </html>
      

  7.   

    你这根本就是欲盖弥彰,lz说的点击按钮的时候obblur事件移除,你这是市区焦点的时候将onclick事件清空,一样么?如果onblur事件的提示和obclick的提示不一样怎么办,你这方法根本行不通
      

  8.   

    给弹出框加一个是否已经显示的标志isShow,在事件绑定的函数里判断是否已经弹出,如果已经弹出的话就不再弹
    否则弹出并设置isShow为true,关闭时再把isShow设为false如果用jui的弹出框里面已经有这个状态标志并且不用手动设置这个标志的值。