js中return false(阻止)的用法


Posted in Javascript onAugust 14, 2013

return false 阻止表单提交不起今天这个问题困扰了我很久,在网上找了很多资料,基本上关于onsubmit=return false有以下几点要注意的地方:

1. return 的返回值问题,函数中return一旦有返回值,就不在执行下面的语句,直接跳到函数调用的地方。如下PHP函数代码,第一个if条件符合则函数值返回布尔型false,可以返回一个函数的值,并且跳出这个函数;只要遇到return语句,程序就在那一行代码停止执行,执行控制将立刻返回到调用该程序的代码处。

function chkinput(form) 
{ 
if(form.title.value=="") 
{ 
alert("请输入文章标题!"); 
form.title.select(); 
return false; //注意不能写成 return(false); 2009.12.15 
} if(form.content.value=="") 
{ 
alert("文章正文不能为空@!!"); 
form.content.select(); 
return false; 
} 
return true; 
}

2.form的onsubmit属性的触发问题,onsubmit 事件什么时候触发?onsubmit 事件会在表单中的确认按钮被点击时发生。不触发的原因有一般如下:

A. onsubmit属性的触发时机是在form用input:submit这样的button提交时才会触发,否则不会触发。如果是用一个普通input:button,则在onclick属性中指定一个javascript函数,在这个函数里面再执行form的submit()函数,而不是onsubmit属性。

B. 先看一段代码:

<formaction="index.jsp"method="post"onsubmit="submitTest();"> 
<INPUTvalue="www"> 
<inputtype="submit"value="submit"> 
</form><SCRIPT LANGUAGE="JavaScript"> 
<!-- 
function submitTest() { 
// 一些逻辑判断returnfalse; 
} 
//--></SCRIPT>

点击submit按钮该表单并未提交。因为有一处应该改为(红色字体) <formaction="index.jsp"method="post"onsubmit="returnsubmitTest();">
原来onsubmit属性就像是<form>这个html对象的一个方法名,其值(一字符串)就是其方法体,默认返回true;

和Java一样,在该方法体中你可以写任意多个语句,包括内置函数和自定义函数。

在这里submitTest()虽然返回false,但我们只执行了此函数,没有对其结果进行任何处理。

而onsubmit="return submitTest()利用到了它的返回值,达到了预期效果。

3.事件处理函数返回false的问题,在大多数情况下,为事件处理函数返回false,可以防止默认的事件行为.

例如,默认情况下点击一个<a>元素,页面会跳转到该元素href属性指定的页.
Return False 就相当于终止符,Return True 就相当于执行符。
在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的
onclick时间(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果
你想取消对象的默认动作就可以return false。return false应用比较多的场合有:

<body> 
1, <a href="/" mce_href="/" onclick='test();'>超级链接 </a> 
2, <input type="button" onclick='test()' value="提交"> 
3, <form name="form1" onsubmIT="return test();"> 
内容 
<input type="submIT" value="提交"> 
</form> 
</body> <input type="submit" onclick="submitAction(); return false;" /> 
submitAction 方法里面有提交表单的动作。如果不加 return false,

在执行完 submitAction 之后,submit 按钮还会继续执行它的默认事件,就会再次提交表单。这可能就是很多错误的根源。
的确,return false的含义不是阻止事件继续向顶层元素传播,而是阻止浏览器对事件的默认处理。你可以这样试验:
首先将所有的js脚本注释掉,在IE浏览器中尝试拖动一下图片,你会发现鼠标会成为禁止操作的样式,图片是被禁止拖动的,它是浏览器针对mousemove事件所提供的默认行为。

return false就是为了去掉这种行为,否则就会出现你描述的中断事件连续执行。
另外,和return false等效的语句为:

window.event.returnValue = false,
你可以把return false替换为此语句并进行验证。
最后说明一下,此种方式只适用于IE浏览器。

在js中return false的作用一般是用来取消默认动作的。比如你单击一个链接除了触发你的
onclick时间(如果你指定的话)以外还要触发一个默认事件就是执行页面的跳转。所以如果
你想取消对象的默认动作就可以return false。return false应用比较多的场合有:

<form name="form1" onsubmit="return youfunction();">...... </form> 
<a href="www.***.com" onclick="...;return false;">dddd </a>
Javascript 相关文章推荐
Javascript中的this绑定介绍
Sep 22 Javascript
JavaScript通过prototype给对象定义属性用法实例
Mar 23 Javascript
文字垂直滚动之javascript代码
Jul 29 Javascript
JS组件Bootstrap Table表格行拖拽效果实现代码
Aug 27 Javascript
jQuery插件扩展extend的简单实现原理
Jun 24 Javascript
jquery easyui DataGrid简单示例
Jan 23 Javascript
DOM事件探秘篇
Feb 15 Javascript
微信小程序实现多个按钮toggle功能的实例
Jun 13 Javascript
Bootstrap Table快速完美搭建后台管理系统
Sep 20 Javascript
详解如何使用PM2将Node.js的集群变得更加容易
Nov 15 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 Javascript
vue动态设置路由权限的主要思路
Jan 13 Vue.js
JavaScript中window、doucment、body的解释
Aug 14 #Javascript
onmouseover和onmouseout的一些问题思考
Aug 14 #Javascript
js之onload事件的一点使用心得
Aug 14 #Javascript
jQuery Animation实现CSS3动画示例介绍
Aug 14 #Javascript
JavaScript中json使用自己总结
Aug 13 #Javascript
jquery自定义类似$.ajax()的方法实现代码
Aug 13 #Javascript
Jquery动态进行图片缩略的原理及实现
Aug 13 #Javascript
You might like
php fputcsv命令 写csv文件遇到的小问题(多维数组连接符)
2011/05/24 PHP
php环境配置之CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI比较?
2011/10/17 PHP
php源码 fsockopen获取网页内容实例详解
2016/09/24 PHP
Jquery之Ajax运用 学习运用篇
2011/09/26 Javascript
ie支持function.bind()方法实现代码
2012/12/27 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
轻松创建nodejs服务器(3):代码模块化
2014/12/18 NodeJs
纯javascript实现简单下拉刷新功能
2015/03/13 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
功能强大的Bootstrap使用手册(一)
2016/08/02 Javascript
ros::spin() 和 ros::spinOnce()函数的区别及详解
2016/10/01 Javascript
本地Bootstrap文件字体图标引入却无法显示问题的解决方法
2020/04/18 Javascript
10道典型的JavaScript面试题
2017/03/22 Javascript
微信小程序自定义组件
2017/08/16 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
2017/09/10 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
微信小程序实现传参数的几种方法示例
2018/01/10 Javascript
jquery点击回车键实现登录效果并默认焦点的方法
2018/03/09 jQuery
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
微信小程序自定义头部导航栏和导航栏背景图片 navigationStyle问题
2019/07/26 Javascript
JS动态显示倒计时效果
2019/12/12 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
python中__call__内置函数用法实例
2015/06/04 Python
Python实现的密码强度检测器示例
2017/08/23 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
Python3 assert断言实现原理解析
2020/03/02 Python
python爬虫学习笔记之pyquery模块基本用法详解
2020/04/09 Python
django数据模型中null和blank的区别说明
2020/09/02 Python
大学生四年生活自我鉴定
2013/11/21 职场文书
广告业务员岗位职责
2014/02/06 职场文书
干部作风建设年活动剖析材料
2014/10/23 职场文书
保研推荐信格式
2015/03/25 职场文书
2015最新婚礼司仪主持词
2015/06/30 职场文书
2016幼儿园教师节新闻稿
2015/11/25 职场文书
浅谈resultMap的用法及关联结果集映射
2021/06/30 Java/Android