由表单中onsubmit=return false;想到的

众所周知,在表单中加上οnsubmit="return false;"可以阻止表单提交。
下面是简单的一小段代码:

代码
 <form action="index.jsp" method="post" onsubmit="submitTest();">

<INPUT value="www">
<input type="submit" value="submit">
</form>

 

<SCRIPT LANGUAGE="JavaScript">
<!--
function submitTest() {

// 一些逻辑判断
return false;
}
//-->
</SCRIPT>

大家判断像上面的写法,点击submit按钮该表单是否提交?

 

若答案为是,就不用往下看了。

若答案为否,错了。实际情况是表单正常提交,若想它不提交,应该将

代码
 <form action="index.jsp" method="post" onsubmit="submitTest();">
改为
代码
 <form action="index.jsp" method="post" onsubmit="return submitTest();">

 

为何?

原来onsubmit属性就像是<form>这个html对象的一个方法名,其值(一字符串)就是其方法体,默认返回true;

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

代码
 onsubmit="

alert('haha'); // 内置函数
submitTest(); // 自定义函数
alert(this.tagName); // 用到了this关键词
......(任意多条语句)
return false;
"

就相当于
代码
 Form.prototype.onsubmit = function() {

alert('haha'); // 内置函数
submitTest(); // 自定义函数
alert(this.tagName); // 用到了this关键词
......(任意多条语句)
return false;
};

这样的话你就覆写了(override)其默认方法(默认返回true)
大家注意到方法体中可以用this这个关键词,这里即代表了<form>的对象实例。

 

经过这样的分析后,以上情况就不难理解了:

代码
 <form action="index.jsp" method="post" onsubmit="submitTest();">
这样写,override方法的效果为:
代码
 Form.prototype.onsubmit = function() {

submitTest();
};

在这里submitTest()虽然返回false,但我们只执行了此函数,没有对其结果进行任何处理。而
代码
 <form action="index.jsp" method="post" onsubmit="return submitTest();">

override方法的效果为:
代码
 Form.prototype.onsubmit = function() {

return submitTest();
};

这样,我们利用到了它的返回值,达到了预期效果。
这样理解的话我想印象会深刻得多,就不易出错了

 

结论:
我们可以用Java里的思维方式来思考模拟JavaScript中的类似情况(JavaScript中基于prototype的面向对象技术也确实是这样做的),但他们毕竟还是有本质上的区别,如Java是强类型的,有严格的语法限制,而JavaScript是松散型的。象上述方法:

代码

Form.prototype.onsubmit = function() {
};

既可以有返回值,又可以没有返回值,在Java里是通不过的,毕竟Java里面不能靠方法的返回值不同来重载(overload)方法,而JavaScript中的重载要松散得多。

 

转载于:https://www.cnblogs.com/yoyozhou/archive/2007/02/12/648375.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/436551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机知识竞赛主持人开场词,护理竞赛主持人台词:主持人开场白台词

专科护理在世界范围内蓬勃发展&#xff0c;高质量的专科护理人才是推动护理事业发展的原动力。下面是小编给大家整理的护理竞赛主持人台词&#xff0c;仅供参考。护理竞赛主持人台词【篇一】在这充满火热激情的季节&#xff0c;我们又迎来了“5.12国际护士节”。让我们首先向辛…

饭卡可以用水冲洗吗_薄壁不锈钢水管真的可以满足大众用水健康管道的要求吗?...

我们都认识现如今的自来水的出厂干净程度达到安全、卫生&#xff0c;干净标准。但是&#xff0c;很是收到不少市民的投诉&#xff0c;说日常饮用的自来水有异味、浑浊、杂质&#xff0c;为何会出现这番现象呢&#xff0c;为此&#xff0c;我国也针对此研究调查&#xff0c;最后…

WinCE的快速启动

PXA270上的双启动功能已经实现了&#xff0c;但又引入了一个新问题&#xff0c;WinCE的启动太慢&#xff0c;大概需要2分钟&#xff01;这显然是不能忍受的。通过两天的努力&#xff0c;现在已经缩短到20秒&#xff0c;虽然还是有点长&#xff0c;但已改善不少了。先整理一下&a…

【转】ABP源码分析三十九:ABP.Hangfire

ABP对HangFire的集成主要是通过实现IBackgroundJobManager接口的HangfireBackgroundJobManager类完成的。 HangfireBackgroundJobManager:实现了接口IBackgroundJobManager中的方法EnqueueAsync&#xff0c;通过HangfireBackgroundJob完成Enqueue。重写了BackgroundWorkerBase…

计算机无法显示硬盘盘符,电脑硬盘不显示盘符怎么办 移动硬盘不显示盘符的原因...

电脑上是目前我们经常会使用到电子设备&#xff0c;其中电脑硬盘是电脑重要的零部件&#xff0c;它可以为电脑存储和运行各种文件&#xff0c;是电脑不可或缺的组件&#xff0c;然后用户在使用电脑的时候突然发现电脑硬盘不显示盘符该怎么办&#xff0c;移动硬盘显不示盘符的有…

博客诞生过程与变革:十年来谁是写博客第一人?

北京时间3月21日&#xff0c;国外媒体有文章称&#xff0c;假如没有一亿人每天热衷于写Blog&#xff0c;那么Blog可能不会成为目前互联网上最主要的应用之一。于是&#xff0c;不止一个人声称自己是第一个写Blog的人。到底谁才是第一个真正写Blog的人呢&#xff1f;是备受争议的…

百度云cdn设置州五年制大专_图说云原生:让云原生转型变得像种白菜一样简单...

序有一天&#xff0c;女朋友突然问我&#xff1a;“能不能跟我讲讲&#xff0c;你每天在开发的这些“天合”云原生平台、容器引擎、微服务&#xff0c;都是做什么的呀&#xff1f;”我说&#xff1a;“可以啊。简单来讲&#xff0c;我们的产品就是帮助客户实现云原生应用的上云…

WinCE中命令行工具Viewbin简介

作者&#xff1a;ARM-WinCE Viewbin是微软提供的一个命令行工具&#xff0c;在WinCE6.0中&#xff0c;可以在"/WINCE600/PUBLIC/COMMON/OAK/BIN/I386"找到他。Viewbin工具可以用来查看NK.bin文件。它可以从NK.bin中获得这个NK image的大小&#xff0c;运行的起始地址…

【转】ABP源码分析四十:ZERO的Application和Tenant

ABP的Zero模块以数据库为数据源实现了ABP框架中的tenant management (multi-tenancy), role management, user management, session, authorization (permission management), setting management, language management, audit logging等核心功能。ABP中的这些功能具体实现都依…

生命、生活:同样重要

生命是一种责任&#xff0c;生命是一个过程&#xff0c;也是一种目的。在短暂的生命历程中&#xff0c;我们必须使生命具有更高的意义。在自己有限的生命中建立起一些永恒的东西。 生命中最好的景致有时并不是用浓墨重彩描绘而成的&#xff0c;它也许只是一个淡淡的足迹&#x…

allegro标注尺寸设置_标注新升级 | SOLIDWORKS 2020新功能揭秘

在实际设计过程中&#xff0c;尺寸链在工程图尺寸标注中使用率是非常高的。尺寸链是由互相联系的尺寸按一定顺序&#xff0c;首尾相接排列而成的封闭尺寸组。常规设置方法在SOLIDWORKS之前的版本中&#xff0c;我们可以使用&#xff1a;基准尺寸、尺寸链(水平&竖直尺寸链)完…

WinCE中命令行工具cvrtbin简介

作者&#xff1a;ARM-WinCE 关于cvrtbin的用途&#xff0c;最常用的就是将NK.bin转换出NK.nb0。用法如下&#xff1a; cvrtbin [options] [filename] -s 从bin文件中产生sre文件 -r 从bin文件中产生rom文件 -a rom文件的起始地址 -w 总线的宽度 -l rom文件的大小 这个工具可…

如何选购计算机主板电池,电脑主板电池耗电太快什么原因?如何判断问题并解决?...

一般来说&#xff0c;主板其实并不是非常容易损坏的&#xff0c;但用的时间长了也会出现些小问题&#xff0c;下面小编为大家介绍电脑主板电池耗电太快什么原因&#xff1f;如何判断问题并解决&#xff1f;电脑主板电池耗电太快什么原因CMOS电池耗电太快&#xff0c;有可能是主…

【转】ABP源码分析四十一:ZERO的Audit,Setting,Background Job

AuditLog: 继承自Entity<long>的实体类。封装AuditLog的信息。 AuditingStore: 实现了IAuditingStore接口&#xff0c;实现了将AuditLog的信息保存到数据库的功能。其通过IRepository<AuditLog, long>实例完成对数据库的操作。 BackgroundJobStore : 实现了IBack…

WinCE BSP中的DAT文件介绍

作者&#xff1a;ARM-WinCE DAT文件用于在WinCE启动的时候&#xff0c;定义文件系统的结构&#xff0c;也就是定义有哪些文件夹&#xff0c;哪些文件在什么位置等。每次冷启动的时候&#xff0c;Filesys模块会根据.dat文件中的内容来创建目录以及目录下的文件。 在BSP中我们可以…

翻译记忆软件:Trados 7/2006,兼容性和基本用法讨论

兼容性 我下载了Trados7&#xff0c;但是发现和Word2003和Word2007均没有加载出来&#xff0c;不能工作。 后来下载Trados2006&#xff08;7.5&#xff09;&#xff0c;安装之后&#xff0c;发现可以在Word2003下使用了&#xff0c;在Word2007下虽然加载项能够出来&#xff0c…

python canvas画移动物体_Python GUI编程入门(25)-移动Canvas对象

Canvas对象生成之后&#xff0c;有时会希望调整对象的位置。例如前面文章中提到的时钟小程序&#xff0c;我们稍加改造可以另外实现一个指针式时钟&#xff1a;在这个小程序中增加的功能就是根据具体时间计算每个指针的坐标信息&#xff0c;这部分功能在时钟类Clock中实现。这个…

【转】ABP源码分析四十二:ZERO的身份认证

ABP Zero模块通过自定义实现Asp.Net Identity完成身份认证功能, 对Asp.Net Identity做了较大幅度的扩展。同时重写了ABP核心模块中的permission功能&#xff0c;以实现授权。注意&#xff1a;ABP仅仅使用了Asp.Net Identity的身份认证功能&#xff0c;但没有使用Asp.Net Identi…

ASP.NET 安全认证(二)——灵活运用deny与allow 及保护.htm等文件

第二部分 Form 认证的实战运用 话说上回&#xff0c;简单地说了一下 Form 表单认证的用法。或许大家觉得太简单&#xff0c;对那些大内高手来说应该是“洒洒水啦”“小 Kiss 啦&#xff08;小意思&#xff09;”。今天咱们来点的花样吧&#xff1a;古有六扇门&#xff0c;拒收…

python nodemcu_python开发nodemcu(一)

nodemcu模块准备工作软件配置&#xff1a;1&#xff1a;查看python版本号&#xff0c;切换到Script目录下2&#xff1a;安装esptool使用命令pip install esptool安装成功标志曾经出现的错误错误提示不知道为什么&#xff1f;我2017/1/8号的时候安装一直提示这个错误&#xff0c…