Html代码  <form onsubmit="doSubmitValidate();">  
  <input type="text" onblur="doOnBlur();"/>  
  <input type="submit" value="submit"/>  
</form>  做如下操作: 
step1: 点击进入text,获取焦点 
step2: 点击submit 在执行step2的时候感觉是两个事件都触发了,那到底是怎么执行的,请各位指点,多谢。

解决方案 »

  1.   

    两个情况,
    如果焦点在text上,再去点submit 那么先 blur 再 onsubmit
    如果焦点不在text上,直接点submit,那么 只有 onsubmit<form onsubmit="return doSubmitValidate();">
     <input type="text" onblur="doOnBlur();"/> 
     <input type="submit" value="submit"/>
     </form>
     <script type="text/javascript">
     function doOnBlur(){
    console.log('OnBlur')
     }
     function doSubmitValidate(){
    console.log('submit')
    return false;
     }
     </script>
      

  2.   

    兄弟, 想简单一点吧。 比如:
    1、你离开家时,你家的狗一定会叫;
    2、你泡美女时,有人会笑。这两者根本没有什么联系, 你可以先回家再去泡MM, 也可以不回家就去泡MM。 随你的便了。你觉得有联系, 只是因为, 你习惯了先回家再去泡MM而已。
      

  3.   

    Quote: 引用 1 楼 calmcrime 的回复:

    两个情况,
    如果焦点在text上,再去点submit 那么先 blur 再 onsubmit
    如果焦点不在text上,直接点submit,那么 只有 onsubmit
    事实就是这样的...
      

  4.   

    用阻止事件冒泡来解决
    function doOnBlur(){
    .......
    .......
    这里是你要处理的事件
     event.stopPropagation();// 阻止事件冒泡
    }