前言

首先我们要清楚returnValue是IE的一个属性,如果设置了该属性,它的值比事件句柄的返回值优先级要高,把它的值设置为false,可以取消发生事件源元素的默认动作;return false就是返回一个false值。

定义

returnValue:设置或获取事件的返回值。

进一步可以这样理解:event对象的returnValue属性一般为true,表示脚本处理完自己的工作由元素来处理事件,通过该属性可以取消事件处理程序中调用函数的默认操作。

作用

event.returnValue:当捕捉到事件(event)时会做一些判断,判断失败,则会阻止事件继续执行,可以达到的效果是“不能在输入框中输入非数字字符”,window.event.returnValue=false放在提交表单中的onclick事件中则不会提交表单,如果放到超链接中则不执行超链接。

<html>
<head>
<script language="text/javascript">
return_value(){
var charCode=event.keyCode;
if(charCode<||charCode>){
alert("对不起,你输入的不是数字字符!");
event.returnValue=false;
}
}
</script>
</head>
<body>
<textarea name="textarea" onKeyPress="return_value()">
</textarea>
</body>
</html>

如果没有event.returnValue=false;这句填写的字符不是数字也会在文本框显示,加上这句,不是数字就不会在文本框中显示,代码会执行完但事件的操作不会继续下去了。

return false:禁止一些浏览器的默认行为,由于原先默认的行为是ture,例如,<a>链接,点击事件发生后,紧接着的默认事件就是跳转链接,但是,在onclick=function(){return false;}之后,就可以对紧接着的默认行为禁止掉;

区别

这个event.returnValue与return false的区别是,在实战中,对表单验证而言,event.returnValue=fasle和return function(){return false}的效果是一样的,都是先对表单的内容进行判断,才决定是否执行下去,但是,这个return function(){return false}和function(){return false}又是有区别的,前者是在先对函数的内容的判断上是否执行下去的,但是,后者则不会进行判断就直接执行下去了

扩充

例如:onClick='return add_onclick()'与 onClick='add_onclick()'的区别

js在事件中调用函数时用return返回值实际上是对window.event.returnvalue进行设置。而该值决定了当前操作是否继续。当返回的是true时,将继续操作。当返回是false时,将中断操作。

而直接执行时(不用return)。将不会对window.event.returnvalue进行设置,所以会默认地继续执行操作

详细说明如下:
当在 <a href="abc.htm" onclick="return add_onclick()">Open</a> 中
如果函数 add_onclick() 返回 true, 那么 页面就会打开 abc.htm
否则, (返回 false), 那么页面不会跳转到 abc.htm, 只会执行你的 add_onclick() 函数里的内容. (add_onclick函数中控制页面转到 abc.htm除外)

而 <a href="abc.htm" onclick="add_onclick()">Open</a>
不管 add_onclick() 返回什么值, 都会在执行完 add_onclick 后打开页面 abc.htm

注:onclick和href同时存在时,先执行onclick再执行href

另外补充:
1、onclick事件时就相当于onclick="return true/false"

function check(){
if(obj.value=="" ){
window.alert("不能为空!");
obj.focus();
return false;
}
return true;
}

调用方法返回true时才提交表单,反之则不提交,这是submit按钮

2、调用js函数不需要return,但是表单却无法提交,所以在js函数中加上一句话

<script language="javascript">
function check(){
if(obj.value=="" ){
window.alert("不能为空!");
obj.focus();
return false;
}
document.myform.submit();
return true;
}
</script>

注:document.myform.submit();要在return true前

解读event.returnValue和return false的更多相关文章

  1. event.returnValue和return false的区别

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  2. 阻止事件冒泡两种方式:event.stopPropagation();和return false;

    jQuery提供了两种方式来阻止事件冒泡. 方式一:event.stopPropagation(); $("#div1").mousedown(function (event) { ...

  3. event.stopPropagation(),event.preventDefault()和return false的区别

    event.stopPropagation(),event.preventDefault()和return false的区别 1.event.stopPropagation()方法 这是阻止事件的冒泡 ...

  4. JS 之 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

    在前端开发中,有时我们需要阻止冒泡和阻止默认事件的发生. 一.event.stopPropagation() 阻止事件的冒泡,不让事件向documen上蔓延,但是默认事件任然会执行,当调用这个方法的时 ...

  5. 阻止事件冒泡,阻止默认事件,event.stopPropagation()和event.preventDefault(),return false的区别

    1.event.stopPropagation()方法 这是阻止事件的冒泡方法,不让事件向documen上蔓延,但是默认事件任然会执行,当你掉用这个方法的时候,如果点击一个连接,这个连接仍然会被打开, ...

  6. event.preventDefault() vs. return false

    使用jquery方式的话,以下是等效的 return false === event.stopPropagation + event.preventDefault() //1. event.preve ...

  7. event.stopPropagation()、event.preventDefault()与return false的区别

    做小demo时经常用到return false来取消默认事件,但一直不是很懂它和preventDefault()等的区别,今天查了查文档和大神们的博客,在这里对相关知识点做一个总结 首先开门见山,总结 ...

  8. event.stopPropagation()和event.preventDefault(),return false的区别

    我写公司的官网遇到一个问题,轮播图的上一层有一块内容,用鼠标拖动那块内容的时候下一层的轮播图也会跟着拖动,而上面的那层的内容是不会动的,我想这就是冒泡事件在作祟了吧 跟冒泡事件相关的,我想到三个: 1 ...

  9. js的stopPropagation()、cancelBubble、preventDefault()、return false的分析

    个人笔记,如有错误,望指出. 事件冒泡,举个列子: <li> <a href='http://www.baidu.com'>点击a</a> </li> ...

随机推荐

  1. 软工团队 - UML设计

    软工团队 - UML设计 分工 对于分工我们没有不是按"自己负责部分的核心模块做练习"(每个人对每个图的某一模块来依次做完四个UML)的原因,是在于画这些图并不是都能彻底分成各个& ...

  2. ACE侧边栏刷新自动展开之前的选择

    在body下面加上 <script type="text/javascript"> $(document).ready(function(){ var url = do ...

  3. 转:Java中的String,StringBuilder,StringBuffer三者的区别

    最近在学习Java的时候,遇到了这样一个问题,就是String,StringBuilder以及StringBuffer这三个类之间有什么区别呢,自己从网上搜索了一些资料,有所了解了之后在这里整理一下, ...

  4. nginx tcp负载均衡 (Module ngx_stream_upstream_module)

    Example ConfigurationDirectives     upstream     server     zone     state     hash     least_conn   ...

  5. 早期nginx tcp代理(基于patch实现)

    nginx tcp代理功能由nginx_tcp_proxy_module模块提供,同时监测后端主机状态.该模块包括的模块有: ngx_tcp_module, ngx_tcp_core_module, ...

  6. ElasticSearch(六):安装中文分词器插件smartcn

    首先进入elasticsearch的bin目录 然后执行 #  sh elasticsearch-plugin install analysis-smartcn 安装完成后,需要重启elasticse ...

  7. Druid、BoneCP、DBCP、C3P0等主流数据库对比

    关键功能 Druid BoneCP DBCP C3P0 Proxool JBoss LRU 是 否 是 否 是 是 PSCache 是 是 是 是 否 是 PSCache-Oracle-Optimiz ...

  8. USB知识汇总

    概述 通用串行总线(英语:Universal Serial Bus,缩写:USB)是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人电脑和移动设备等信息通 ...

  9. POJ2749 Building roads

    嘟嘟嘟 最近把21天漏的给不上. 今天重温了一下2-SAT,感觉很简单.就是把所有条件都转化成如果--必然能导出--.然后就这样连边建图,这样一个强连通分量中的所有点必然都是真或者假.从而根据这个点拆 ...

  10. 【转】配置不当引起高危漏洞?看加密货币交易所如何正确用Spring Boot Actuaotr框架

    https://xz.aliyun.com/t/2233 SpringBoot应用监控Actuator使用的安全隐患 概述 微服务作为一项在云中部署应用和服务的新技术是当下比较热门话题,而微服务的特点 ...