在IE7下测试如下代码:
<html>
<head><title></title>
<script language="javascript">
function test()
{
event.returnValue = false;
alert("yes!");
}
</script>
</head>
<body>
<input type="button" id="btn" onClick="test();">
</body>
</html>点击button后,仍然会弹出对话框,即alert得到了执行,请问"event.returnValue = false;"究竟有啥作用?为什么后面语句仍然得到执行?谢谢!

解决方案 »

  1.   


    <html> 
    <head> <title> </title> 
    <script language="javascript"> 
    function test() 

    event.returnValue = false; 
    // return false;
    alert('yes'); // ==================================
    // 设置false可以阻止浏览器执行与事件相关的默认动作
    // 比如 如果没有这个语句 那么onsubmit按钮的onclick
    // 的默认动作就是提交表单.此时这个false就是阻止了
    // 默认动作--表单的提交. 而你的问题应该是return false;
    //  return是退出当前函数.
    //=====================================
      

    </script> 
    </head> 
    <body> 
    <form action="http://www.baidu.com">
    <input type="submit" id="btn" value="onSubmit" onClick="test();"> 
    </form>
    </body> 
    </html> 
      

  2.   

    就是不提交了 与return false区别就是可以放置在前面
      

  3.   

    还要纠正的就是 如果用return false;就要改成
    <input type="submit" id="btn" value="onSubmit" onClick="return test();"> 
      

  4.   


    <html>
    <head> <title> </title>
    <script language="javascript">
    function test(){
      //楼主的疑惑
      event.returnValue = false;
      alert("yes!");
    }function test1(){
      //加个返回值,看看还alert出“yes!”吗?
      return event.returnValue = false;
      /*
      上面那句话,其实就是 return false了;也可以写成:
      event.returnValue = false;
      var b=event.returnValue;
      alert(b)
      return b;
      */
      
      alert("yes!");
    }function test2(){
      event.returnValue = "\n\n询问用户是否阻止浏览器关闭或刷新\n\n";
      alert("yes!");
    }
    </script>
    </head>
    <body onbeforeunload="test2();/*用在这里询问用户是否阻止浏览器关闭或刷新*/">
    测试一、
    <input type="button" id="btn" value="楼主的疑惑" onClick="test();">
    <br><br>
    测试二
    <input type="button" id="btn" value="加个return返回onclick的值" onClick="return test1();">
    <br><br>
    测试三、请F5或点浏览器关闭按钮试一下
    </body>
    </html>
      

  5.   

    event.returnValue = false;"不等于return
    楼主弄混了吧
      

  6.   

    returnValue 如果设置了该属性,它的值比事件句柄的返回值优先级高。把这个属性设置为 fasle,可以取消发生事件的源元素的默认动作。 说得很清楚,楼主,有问题先在http://www.w3school.com.cn/搜一搜