`

event.returnValue和return false的区别

阅读更多
  1. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">   
  2. <html xmlns="http://www.w3.org/1999/xhtml">   
  3. <title>runcode</title>   
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />   
  5. <meta name="Author" content="Sheneyan" />   
  6. <head>   
  7. <script type="text/javascript">   
  8. function form1(){   
  9. event.returnValue = false;   
  10. }   
  11. function form2(){   
  12. return false;   
  13. }   
  14. </script>   
  15. </head>   
  16. <body>   
  17. <form onsubmit="form1()">  <!-- 1 -->   
  18. <fieldset><legend>event.returnValue = false</legend> <input   
  19.     type="submit" /></fieldset>   
  20. </form>   
  21. <form onsubmit="return form2()"> <!-- 2 -->   
  22. <fieldset><legend>return false的正确用法</legend> <input   
  23.     type="submit" /></fieldset>   
  24. </form>   
  25. <form onsubmit="form2()"> <!-- 3 -->   
  26. <fieldset><legend>return false的错误用法</legend> <input   
  27.     type="submit" /></fieldset>   
  28. </form>   
  29. </body>   
  30. </html>  
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<title>runcode</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="Author" content="Sheneyan" />
<head>
<script type="text/javascript">
function form1(){
event.returnValue = false;
}
function form2(){
return false;
}
</script>
</head>
<body>
<form onsubmit="form1()">  <!-- 1 -->
<fieldset><legend>event.returnValue = false</legend> <input
	type="submit" /></fieldset>
</form>
<form onsubmit="return form2()"> <!-- 2 -->
<fieldset><legend>return false的正确用法</legend> <input
	type="submit" /></fieldset>
</form>
<form onsubmit="form2()"> <!-- 3 -->
<fieldset><legend>return false的错误用法</legend> <input
	type="submit" /></fieldset>
</form>
</body>
</html>

 

   三个提交的onsubmit属性都是想让表单提交之前验证,验证失败则不提交表单。第一、二两处做到了,第三出没做到。

   这个只有运行起来才能看到结果

   1处,表单没有提交

   2处,表单没有提交

   3处,表单提交了。这不是希望的

 

event.returnValue的作用就是:当捕捉到事件(event)时,做某些判断,如果判断失败,则阻止当前事件继续运行,这样讲您也许还不是特别理解,我再举一个例子,该例子达到的效果是:不能在一个输入框中输入小数。

FireFox浏览器:

Js代码 复制代码 收藏代码
  1. <script language="javascript" type="text/javascript">   
  2.     function test(event)   
  3.     {   
  4.         if(event.charCode == 46)   
  5.         {   
  6.             event.preventDefault();   
  7.         }   
  8.     }   
  9. </script>   
  10.   
  11. <input type="text" onkeypress="test(event)"/>  
<script language="javascript" type="text/javascript">
	function test(event)
	{
		if(event.charCode == 46)
		{
			event.preventDefault();
		}
	}
</script>

<input type="text" onkeypress="test(event)"/>

 

 IE浏览器:

Js代码 复制代码 收藏代码
  1. <script language="javascript" type="text/javascript">   
  2.     function test()   
  3.     {   
  4.         if(event.keyCode == 46)   
  5.         {   
  6.             event.returnValue = false;    
  7.         }   
  8.     }   
  9.   
  10. <input type="text" onkeypress="test()"/>  
<script language="javascript" type="text/javascript">
	function test()
	{
		if(event.keyCode == 46)
		{
			event.returnValue = false; 
		}
	}

<input type="text" onkeypress="test()"/>

 

 请注意两种浏览器的不同之处,在FireFox中event必须作为test()函数的如参传入,而IE不用,这个我在《JavaScript高级程序设计》一书中P233页,9.4.1章节找到如下答案:

    9.4 事件对象

    ...

    你也许已经猜到,IE和DOM是用两种不同的方法实现事件对象的。

 

    9.4.1

    在IE中,事件对象是window对象的一个属性event。也就是说,事件处理函数必须这样访问事件对象:

Js代码 复制代码 收藏代码
  1. oDiv.onclick = function()   
  2. {   
  3.     var oEvent = window.event;   
  4. }  
oDiv.onclick = function()
{
    var oEvent = window.event;
}

   尽管它是window对象的属性,event对象还是只能在事件发生时访问。所有的事件处理函数执行完毕后,事件对象就被销毁。

   DOM 标准则说,event对象必须作为唯一的参数传给事件处理函数。所以,在DOM兼容的浏览器(如:Mozilla,Safari和Opera)中访问事件对象,要这么做:

 

Js代码 复制代码 收藏代码
  1. oDiv.onclick = function  
  2. {   
  3.     var oEvent = arguments[0];   
  4.     ...   
  5. }   
  6.   
  7. 当然,可以直接命名参数,访问就更方便了:   
  8. oDiv.onclick = function(oEvent)   
  9. {   
  10.     ...   
  11. }  
分享到:
评论

相关推荐

    手机后台DEMO

    比如你的INPUT是:那么你在里边加入:onKeypress="javascript:if(event.keyCode == 32)event.returnValue = false;"成为:(event.keyCode == 32)event.returnValue = false;"&gt;本人测试有效,如果解决记得加分哦

    PHP常用代码大全(新手入门必备)

    需要的朋友可以参考下。 45.禁止复制,鼠标拖动选取 &lt;body ondragstart=window.event.returnValue=false oncontextmenu=window.event.returnValue=false onselectstart=event.returnValue=false&gt;

    实用JavaScript脚本代码大全

    oncontextmenu="window.event.returnvalue=false"将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table 2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制 ...

    Event对象详解

    window.event.returnValue = false; } ()"&gt; 下面的例子在状态栏上显示鼠标的当前位置。 &lt;BODY onmousemove="window.status = 'X=' + window.event.x + ' Y=' + window.event.y"&gt; 属性: altKey, button, ...

    40个常用javascript设计技术.txt

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table 2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制 3....

    禁止复制网页上的文字

    禁止复制网页上的文字禁止复制网页上的文字 ...document.oncontextmenu=new Function('event.returnValue=false;'); document.onselectstart=new Function('event.returnValue=false;'); --&gt; &lt;/SCRIPT&gt;

    网站开发制作40个技巧.txt

    1. oncontextmenu= "window.event.returnValue=false " 将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt; &lt;td&gt; no &lt;/table&gt; 可用于Table 2. &lt;body onselectstart= "return false "&gt; 取消...

    JS验证是否输入为数字

    js 是否为数字 function MustNumber() { if (((event.keyCode &gt;= 48) && (event.keyCode )) || (event.keyCode == 46)) { event.returnValue = true; } else { event.returnValue = false; } }

    HTML_js_正则表达式

    1.文本框只能输入数字代码(小数点也不能输入) &lt;input onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\...=46 || /\.\d\d$/.test(value))event.returnValue=false"&gt;

    JavaScript实用技巧集锦

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table 2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制 ...

    js常用55个技巧

    js常用技巧 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键

    javascript55个经典技巧

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table 2. &lt;body onselectstart="return false"&gt; 取消选取、防止复制 3....

    jsp表单验证汇总

    ((event.keyCode&gt;=48&&event.keyCode) (event.keyCode&gt;=96&&event.keyCode)))//考虑小键盘上的数字键event.returnvalue=false;}&lt;/script&gt;&lt;input onkeydown="onlyNum();"&gt;5. 只能是英文字符和数字&lt;input onkeyup="...

    常用55个JS脚本

    常用55个js脚本 oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键

    表单验证大全

    event.returnvalue=false; } [removed] &lt;input 4. 只能是数字 [removed] function onlyNum() { if(!((event.keyCode&gt;=48&&event;.keyCode)||(event.keyCode&gt;=96&&event;.keyCode))) //考虑小键盘上的数字键...

    Javascript之event大全

    语法:event.returnValue [= returnValue] 可能的值:这是一个可读写的布尔值:TRUE 允许事件继续传播、FALSE 取消事件的传播。 screenX 属性 screenX 属性用于返回鼠标在屏幕中的 X 坐标。语法:event.screenX ...

    JavaScript经典技巧

    JavaScript经典技巧 1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 。。。。。

    网站内容禁止复制和粘贴、另存为的js代码

    1、使右键和复制失效 方法1: 在网页中加入以下代码: 代码如下: [removed] [removed]=new Function(“event.returnValue=false”); [removed]=new Function(“event.returnValue=false”); [removed] 方法2: 在&lt...

    Javascript中最常用的55个经典技巧.pdf

    1. oncontextmenu="window.event.returnValue=false" 将彻底屏蔽鼠标右键 &lt;table border oncontextmenu=return(false)&gt;&lt;td&gt;no&lt;/table&gt; 可用于Table

    JS禁用右键、禁用Ctrl+u、禁用Ctrl+s、禁用F12的实现代码

    [removed] = new Function(event.returnValue=false;),//禁用右键 [removed] = new Function(event.returnValue=false;),//禁用选中 [removed] = function (e) { var code = e.keyCode; if (arr.indexOf(code) &gt; -...

Global site tag (gtag.js) - Google Analytics